Python舍入错误?

Python舍入错误?,python,rounding,Python,Rounding,有人能解释一下吗 输入: 58/100*100 26/100*100 结果: 57.99999999999999 26.0 然而 输入: 58/100*100 26/100*100 结果: 57.99999999999999 26.0 另外,我怎样才能像第二种情况一样得到一致的结果呢?这都是由于浮点运算造成的 python计算包含数字文本的表达式的方式也发生了微妙的变化 从Python3开始,上面的表达式将以浮点计算;在此之前,将使用整数算术 在IEEE754浮点中,0.58比0

有人能解释一下吗

输入:

58/100*100
26/100*100
结果:

57.99999999999999
26.0
然而

输入:

58/100*100
26/100*100
结果:

57.99999999999999
26.0

另外,我怎样才能像第二种情况一样得到一致的结果呢?

这都是由于浮点运算造成的 python计算包含数字文本的表达式的方式也发生了微妙的变化

从Python3开始,上面的表达式将以浮点计算;在此之前,将使用整数算术

在IEEE754浮点中,0.58比0.26更远离真值。这足以摆脱输出格式化程序正在使用的启发式


在除法之前执行乘法在某些情况下会有所帮助,因为乘积可以精确表示。

这都是由于浮点运算 python计算包含数字文本的表达式的方式也发生了微妙的变化

从Python3开始,上面的表达式将以浮点计算;在此之前,将使用整数算术

在IEEE754浮点中,0.58比0.26更远离真值。这足以摆脱输出格式化程序正在使用的启发式


在除法之前执行乘法在某些情况下会有所帮助,因为乘积可以精确表示。

这不是Python错误。这就是浮点运算的工作原理。请阅读。这个问题是二进制浮点计算固有的。试试
Decimal
模块,它可以让你用十进制进行数学运算,它不受这些限制,但速度较慢。你为什么真的在乎?请解释一下,这样我们才能解决真正的问题。每一位计算机科学家都应该知道的浮点运算不是Python错误。这就是浮点运算的工作原理。请阅读。这个问题是二进制浮点计算固有的。试试
Decimal
模块,它可以让你用十进制进行数学运算,它不受这些限制,但速度较慢。你为什么真的在乎?请解释一下,这样我们才能解决真正的问题。每个计算机科学家都应该知道什么是浮点运算