新手请教问题:请问这个小数点后是什么原理?

2014-06-24 13:00:26 +08:00
 tanny


今天拿来当计算器时,发现其中一个结果后面出现了000000000001

以后写程序时需要避免这种问题吗?
3285 次点击
所在节点    Python
4 条回复
oott123
2014-06-24 13:15:27 +08:00
不用,无视之就可以了。
这恰恰是精度高的表现。

当然,也许你需要 "%.2f"
phyng
2014-06-24 13:17:21 +08:00
1、浮点数的精度问题。
2、这样可以好一点:
>>> 60+58.21
118.21000000000001
>>> print 60+58.21
118.21
>>>
jokester
2014-06-24 13:47:51 +08:00
浮点数就那么多bit, 不能保证使用到的所有浮点数都是二进制下的有限小数

需要判断float A == float B时记得用 abs(A-B)<delta 来做
kkzxak47
2014-06-25 11:28:48 +08:00
其实是一个值得深入的问题
看看这个: http://justjavac.iteye.com/blog/1725977

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/119243

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX