我寫了一個很長的帖子,試圖解釋所遇到的問題IM的具體細節,而是我覺得生病保持它的簡單,在這裏問一個例子問題:閃光AS3四捨五入的數字自動
var n1:Number = 9.99999999999999;
n1 += 0.000000000000009;
var n2:Number = n1 + 10;
var n3:Number = n1 - 10;
朗故事短,n1 = 9.99 .... 7,n2 = 20,n3 = 10.
如果我試圖對n1和n3進行比較,它們應該是相同的,但它們是無效的。我不在乎閃光是否輪到它,我只是需要它們是相同的(並且它們不是在一種情況下引起閃光,而不是在另一種情況下閃光)。
有沒有這樣的問題的一些標準的解決方案?
P.S.我不需要這個精度在我的數字,但我也不想微觀管理數字的舍入每次我做一個操縱(這似乎可以添加很多代碼混合)。但是,如果這是唯一的解決方案,那麼我認爲在整個代碼中必須做大量的四捨五入,哈。
你的意思是'n3 = n2 - 10'不是'n3 = n1 - 10',對嗎? – Cameron
使用「舍入數字」的訣竅是完全避免IEEE 754浮點數,並堅持整數。 – Cameron