python 计算出这样的结果, 算不算是bug?

python 计算出这样的结果, 算不算是bug?

Python 2.5.1 (r251:54863, Apr 18 2007, 08:51:0 [MSC v.1310 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.

    ****************************************************************
    Personal firewall software may warn about the connection IDLE
    makes to its subprocess using this computer's internal loopback
    interface.  This connection is not visible on any external
    interface and no data is sent to or received from the Internet.
    ****************************************************************
   
IDLE 1.2.1      
>>> 8*0.6
4.7999999999999998
>>>
估计不算,因为这是由计算机不能准确保存浮点数所致。
在Python文档里有说明。
比如说:
>>> a = 1.1
>>> a
1.1000000000000001
>>>
貌似这也正是 decimal 类型登上python历史舞台的原因。
怎样才可以让python计算得准确呢?
BTW, 可否给个python文档里关于这方面说明的链接?

谢谢!


QUOTE:
原帖由 wolfman.wu 于 2007-5-10 12:25 发表
怎样才可以让python计算得准确呢?
BTW, 可否给个python文档里关于这方面说明的链接?

谢谢!

如楼上的楼上的所言,用那个新的模块。但是实际上那个模块功能很弱,而且对于普通的计算来说,这样的精度足够了。
如果想用更高精度的计算,应该用更加合适的工具。
关于那个IEEE的说明在文档里有。我不大记得在哪了。拿1.1000000000000001这个数字去搜索一下吧,是搜索不是索引。
print 8*0.6
4.8