阅读floating point arithmetic in python,我正在尝试一些例子。为了解释自己为什么print 0.1+0.2
没有给0.30000000000000004
,from the docs on print statement,我读到了:
print依次计算每个表达式并写入结果 反对标准输出(见下文)。如果对象不是字符串, 它首先使用string的规则转换为字符串 转换。然后写入(结果或原始)字符串。
为什么字符串转换以及打印语句也将0.30000000000000004
舍入到0.3
?这不是很难知道我的程序正在使用什么浮点值,或者如何知道它?
示例:
In [17]: 0.1 + 0.2
Out[17]: 0.30000000000000004
In [18]: print 0.1 + 0.2
0.3
In [20]: str(0.1 + 0.2)
Out[20]: '0.3'