作者:换个风格回复 | 来源:互联网 | 2022-12-01 19:41
在使用round()
函数时,我注意到我得到了两个不同的结果,具体取决于我是否没有明确选择要包含的小数位数或选择数字为0.
x = 4.1
print(round(x))
print(round(x, 0))
它打印以下内容:
4
4.0
有什么不同?
1> Aniket Navlu..:
如果未指定第二个参数,round函数将返回一个整数,否则返回值与第一个参数的类型相同:
>>> help(round)
Help on built-in function round in module builtins:
round(number, ndigits=None)
Round a number to a given precision in decimal digits.
The return value is an integer if ndigits is omitted or None. Otherwise
the return value has the same type as the number. ndigits may be negative.
因此,如果传递的参数是整数和零,则返回值将是整数类型:
>>> round(100, 0)
100
>>> round(100, 1)
100
为了完整起见:
负数用于小数点前的舍入
>>> round(124638, -2)
124600
>>> round(15432.346, -2)
15400.0
我不知道你可以在`round()`上使用负数.很高兴知道!
嗯,这里答案中最重要的部分是"帮助"功能,因为这样可以让任何人得到答案等等.
2> Wazaki..:
指定小数位数时,即使该数字为0,也要调用返回浮点数的方法的版本.所以你得到那个结果是很正常的.
是的,非常简单明了.就像它在`help(round)`中所说的那样,它在使用一个参数调用时返回一个int,否则与数字相同."
可能想链接到[docs](https://docs.python.org/3.5/library/functions.html#round)并引用第一句话.
"返回浮点数的方法的版本"没有重载或返回类型,这只是一个`if`语句检查`args`