1
當我運行這段代碼:轉換的問題()
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
,這裏有什麼問題嗎?
嘗試將其轉換爲浮動。 –
這是漂浮物的問題 - 你可能得不到與你期望相等的計算結果完全相同的結果(即以兩種不同的方式計算相同的數值可能會產生兩個*輕微*不同的結果)。出於這個原因,你通常用一個容差(即'abs(a - b)
jonrsharpe
您可以繞過您的號碼 – Brambor