如图所示,无论是Python2还是3对于“整整相除所得商之无限循环小数末位”的表示都存在让人困惑的情形。

有人会说这并不是Python的锅--因为没有使用round(),而且计算机的二进制对于表示浮点数时本来就是有误差的。但是,这些例子都是整整相除,所以被除数和除数并不存在误差,而商出现10/9=1.111…112 和 21/9=2.333…335 这种结果已经不能用所谓“误差”来解释了吧?



又何况,这是一个普通手机计算器都可以得到正确表征的最基础的运算问题。难道手机和WINDOWS计算器内部使用的就不是二进制了么?
在下是一名Python语言的初学者,遇此问题实在困惑。还望各路大神指点迷津【拱手作揖】~!
网友评论