round(1.4 999 999 999 999 999)
(不含空格)被四舍五入到2 但 round(1.4 99 999 999 999 999)
(不含空格)被四舍五入到1四舍五入在Python
我想这需要做的不精确浮点表示,但看不懂第一个表示被解释为接近于2而不是1.
round(1.4 999 999 999 999 999)
(不含空格)被四舍五入到2 但 round(1.4 99 999 999 999 999)
(不含空格)被四舍五入到1四舍五入在Python
我想这需要做的不精确浮点表示,但看不懂第一个表示被解释为接近于2而不是1.
因为1.4 999 999 999 999 999
在解析时正好是1.5,所以它们之间的差别太小而不能表示那么大。
但1.4 99 999 999 999 999
足够低解析为“小于1.5”,其实1.4999999999999988897769753748434595763683319091796875,这显然是小于1.5
如果这是一个普遍问题,也许我可以从问题中删除Python位。 –
这是相当普遍的,除了“循环”操作的确切语义因语言不同而不同:在Python中,“round”正确舍入;对于所有语言来说这不一定是真的。 OTOH,与浮点运算本身相比,浮点运算更像浮点运算。 –
https://docs.python.org/2/tutorial/floatingpoint.html#tut- fp-issues –