Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中向上舍入5_Python_Rounding - Fatal编程技术网

Python中向上舍入5

Python中向上舍入5,python,rounding,Python,Rounding,在Python 3.5中,我看到了以下舍入行为: >>> round(7.55, 1) 7.5 # expected to round up to 7.6 >>> round(7.45, 1) 7.5 # this is fine 也许我的直觉是错误的,但我预计7.55中的5的百分之一百会向上舍入到7.6。标准的Python3行为与我的数据预期不符;为了实现这个目标,我显然需要一些超出标准round方法的东西。有没有办法获得这种行为?除了精度问题之外,还要

在Python 3.5中,我看到了以下舍入行为:

>>> round(7.55, 1)
7.5 # expected to round up to 7.6

>>> round(7.45, 1)
7.5 # this is fine

也许我的直觉是错误的,但我预计
7.55
中的
5
的百分之一百会向上舍入到
7.6
。标准的Python3行为与我的数据预期不符;为了实现这个目标,我显然需要一些超出标准
round
方法的东西。有没有办法获得这种行为?

除了精度问题之外,还要注意在这种情况下
round
的偶数/奇数行为:

对于支持round()的内置类型,将值舍入到最接近幂减去ndigit的10倍;如果两个倍数相等接近,则舍入将朝偶数选择方向进行(例如,舍入(0.5)和舍入(-0.5)均为0,舍入(1.5)均为2)。如果使用一个参数调用,则返回值为整数,否则返回值的类型与number相同

注意,float的round()行为可能令人惊讶:例如,round(2.675,2)给出的是2.67,而不是预期的2.68。这不是一个错误:这是因为大多数小数不能精确地表示为浮点。有关更多信息,请参阅浮点运算:问题和限制


这肯定是精度的结果。我认为使用numpy的round()方法可以帮助您实现所需的行为。假设这里的人给出的答案是正确的,那么这就是Python默认轮函数中的预期行为。为什么会关闭?这个问题不是重复的。我期待某些行为,但无法通过标准的
round
函数获得它。我问的是如何获得这种行为。这是一个重复的问题,但不是相关的问题;链接的问题都是关于Python在精确的中间情况下的行为,但是您给出的数字不是精确的中间情况(因为通常您看到的不是二进制浮点的本质)。最好重复: