pet*_*mlm 0 python floating-point
可能重复:
python限制浮动到两个小数点
如果我这样做:12.45-12
在Python中我得到的答案是:0.44999999999999929
我是这么做的:0.45?
顺便说一下,我确实记得这样做:12.45-12.0但没有结果.
这是因为许多小数不能用二进制精确表示.
例如,0.25可以:它是0.01(0*1,0*1/2,1*1/4).0.1不能(0.0001100110011...),就像你不能写1/3作为完整的小数(0.3333333333...).
如果你这样做
print(12.45-12)
Run Code Online (Sandbox Code Playgroud)
你得到
0.45
Run Code Online (Sandbox Code Playgroud)
因为print只显示第一个有效数字.
有关优秀摘要,请参阅Python文档.
如果您确实关心十进制值是否准确(例如,为了避免金融机构中的超人III场景),请查看Decimal模块.