2024-05-23 22:54:09 发布
网友
如果我在Python2.7.5控制台中运行以下代码:
>>> import math >>> math.radians(0.000001)
我明白了
但是,如果我将相同的代码放在一个文件中: 在
运行它,我得到:
$ python.exe floatingtest.py 1.74532925199e-08
为什么在脚本中运行代码与在控制台中运行代码时浮点精度有差别?
(Python3.3似乎没有这个“问题”。两种方法都返回相同的高精度值。)
它与精度无关,只与表示法有关:
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'
这是repr和str之间的区别:
repr
str
>>> repr(math.radians(0.000001)) '1.7453292519943295e-08' >>> str(math.radians(0.000001)) '1.74532925199e-08'
默认情况下,print对其参数调用str,但是当没有赋值时,REPL使用repr显示对象(返回值不是None)。在
print
None
它与精度无关,只与表示法有关:
这是
repr
和str
之间的区别:默认情况下,
print
对其参数调用str
,但是当没有赋值时,REPL使用repr
显示对象(返回值不是None
)。在相关问题 更多 >
编程相关推荐