当我运行此代码时:
value = 11.20
dollars = int(value)
print dollars
print 100 * (value - dollars)
不出所料,我分别获得了11
和20.0
。
然而,当添加这一行时:
print int(100 * (value - dollars))
我得到19
。
我在网上搜索,并得到了解释:
但是0.20是不同的。在计算机内部,它实际上是一个稍小的数字,所以乘以100得到19.99999 ....当int切断小数点后的部分时,结果是19,而不是预期的20。
然后我尝试了:
value_tmp = 0.20
print int(value_tmp * 100)
我得到了20
,而不是19
,这里有什么问题?