2013-06-29 81 views
8

我有問題給大家。int a =(int)((0.7 + 0.1)* 10)。爲什麼a = 7?

int a = (int) ((0.7 + 0.1) * 10) 

該代碼的執行之後,= 7 我`噸明白爲什麼,這是因爲(0.7 + 0.1)= 0.8和0.8×10 = 8。 有人可以告訴我爲什麼嗎? 謝謝!

+7

嘗試打印'0.7 + 0.1'的結果,你會得到你的答案。 – Vulcan

+0

結果爲0.所有相同的我不明白爲什麼a = 7 –

+0

@ user2535193你打印的是什麼?發佈負責打印的代碼。 – Maroun

回答

5

它是浮點運算,它被取消了。

這裏發生的事情是,(0.1 + 0.7)是真的接近0.8,但是當你10你得到7.9999乘以......,當你地板,你拿到7這不是實際上 0.8,

3

Java中的小數部分int s被截斷。你可以創建浮點變量xy,或者只是將它們轉換爲浮點數並將它們轉換回來以獲得int作爲最終結果。

相關問題