作者endroll0118 (DD)
看板Python
标题[问题] 一个计算误差的问题
时间Sat Oct 4 15:25:22 2008
我想请问一下加跟减问题
>>> 0.1
0.10000000000000001
请问为什麽print 0.1到小数第17位的时候会多出个1出来呢
如果0.1=0.10000000000000001
那0.1+0.1应该会变成0.20000000000000002
可是我print出来的值却又变成0.20000000000000001
而0.1+0.1+0.1-0.3print出来的值又变成
5.5511151231257827e-017
可是我测试过0.1+0.1-0.2或者0.1+0.1+0.1+0.1-0.4却都还是0
忽然觉得我有很多问题 麻烦利害的大师解答了
感激不尽!!
谢谢...
--
一个人的旅行...
http://www.wretch.cc/album/endroll0118
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.205.25.135
1F:→ monomorium:小数在电脑都是用模拟计算出来的 10/04 15:26
2F:→ endroll0118:那是跟电脑的作业环境有关系吗 如果在不同的作业环境 10/04 15:29
3F:→ endroll0118:跑出来的数值误差还会是一样的吗?? 10/04 15:29
4F:→ monomorium:软体的关系 在Python请用decimal模组 10/04 16:15
5F:推 wenking:我听到另外一个说法是,因为电脑主要语言为二进制 10/04 22:50
6F:→ wenking:当他在作浮点数运算时,会有除不尽的问题。是这样所造成 10/04 22:51
7F:→ wenking:的误差值。有些也可能出现 9999... 的现象 10/04 22:53
8F:推 bizkit:IEEE 754 10/04 23:21
9F:推 StubbornLin:我好像在Python 2.6的更新里瞄到有分数可以用? 10/04 23:42