明白了,跟C语言的浮点数一样二进制不能精确表示,除非小数部分为0.5、0.25之类可以用二进制位1的位移和组合来表示的
>>> format(3.1405, ".17f")
'3.14049999999999985'
>>> format(3.1415, ".17f")
'3.14150000000000018'
>>> format(3.1425, ".17f")
'3.14250000000000007'
>>> format(1.5, ".17f")
'1.50000000000000000'
>>> format(2.25, ".17f")
'2.25000000000000000'
>>> format(3.125, ".17f")
'3.12500000000000000'
>>> format(4.375, ".17f")
'4.37500000000000000'
>>>
【 在 VincentGe 的大作中提到: 】
: 看文档
: round(number, ndigits=None)?
: 返回 number 舍入到小数点后 ndigits 位精度的值。 如果 ndigits 被省略或为 None,则返回最接近输入值的整数。
: ...................
--
修改:ooolinux FROM 112.50.54.*
FROM 112.50.54.*