在python 2.7中使用除法余数运算符%时,我在使用十进制分母时遇到了意外行为(至少对我而言)。贝娄一个例子:
>>> 0.1%0.1
0.0 # as expected
>>> 0.2%0.1
0.0 # as expected
>>> 0.3%0.1
0.09999999999999998 # what the hell?
>>> 0.4%0.1
0.0 # aw expected
>>> 0.5%0.1
0.09999999999999998 # what the hell?
为什么操作 0.3%0.1 和 0.5%0.1 返回上面的结果而不是 0.0 ,就像在其他情况下一样期待?
由于
答案 0 :(得分:0)
>>> '%.30f' % 0.2
'0.200000000000000011102230246252'
>>> '%.30f' % 0.3
'0.299999999999999988897769753748'
如果您想要精确的结果,可以将每个数乘以10并使用整数。