如果我在Python2.7.5控制台中运行以下代码:
>>> import math
>>> math.radians(0.000001)我得到了
1.7453292519943295e-08但是,如果我将相同的代码放入文件中:
$ cat floatingtest.py
import math
print(math.radians(0.000001))运行它,我得到:
$ python.exe floatingtest.py
1.74532925199e-08为什么在脚本中运行代码与在控制台中运行代码时在浮点精度上存在差异?
(Python3.3似乎没有这个“问题”。这两种方法都返回相同的高精度值。)
发布于 2013-10-23 08:18:47
这就是repr和str的区别
>>> repr(math.radians(0.000001))
'1.7453292519943295e-08'
>>> str(math.radians(0.000001))
'1.74532925199e-08'默认情况下,print对其参数调用str,但是在没有赋值时(返回值不是None),REPL使用repr显示对象。
发布于 2013-10-23 08:18:43
它与精度无关,只与表示法有关:
In [1]: import math
In [2]: math.radians(0.000001)
Out[2]: 1.7453292519943295e-08
In [3]: print math.radians(0.000001)
1.74532925199e-08
In [4]: str(math.radians(0.000001))
Out[4]: '1.74532925199e-08'https://stackoverflow.com/questions/19536203
复制相似问题