首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python 2.7.5中浮点精度的变化

Python 2.7.5中浮点精度的变化
EN

Stack Overflow用户
提问于 2013-10-23 08:09:39
回答 2查看 189关注 0票数 3

如果我在Python2.7.5控制台中运行以下代码:

代码语言:javascript
复制
>>> import math
>>> math.radians(0.000001)

我得到了

代码语言:javascript
复制
1.7453292519943295e-08

但是,如果我将相同的代码放入文件中:

代码语言:javascript
复制
$ cat floatingtest.py
import math
print(math.radians(0.000001))

运行它,我得到:

代码语言:javascript
复制
$ python.exe floatingtest.py
1.74532925199e-08

为什么在脚本中运行代码与在控制台中运行代码时在浮点精度上存在差异?

(Python3.3似乎没有这个“问题”。这两种方法都返回相同的高精度值。)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-23 08:18:47

这就是reprstr的区别

代码语言:javascript
复制
>>> repr(math.radians(0.000001))
'1.7453292519943295e-08'
>>> str(math.radians(0.000001))
'1.74532925199e-08'

默认情况下,print对其参数调用str,但是在没有赋值时(返回值不是None),REPL使用repr显示对象。

票数 5
EN

Stack Overflow用户

发布于 2013-10-23 08:18:43

它与精度无关,只与表示法有关:

代码语言:javascript
复制
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'
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19536203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档