2011-10-20 24 views
0

我做的動作ColdFusion的閃光形式以下時,四捨五入的錯誤:的Actionscript分割然後乘以

90/3.7

給我:

24.3243243243243 

儘管計算器給我:

24.32432432432432 

注意多餘的2在最後。

所以我的問題發生在我試圖通過採取24.3243243243243 * 3.7獲得原始值90,然後我得到89.9999999999這是錯誤的。

爲什麼Actionscript截斷值,我該如何避免這個,所以我得到適當的數量,計算器獲得?

非常感謝。

回答

0

回合使用這樣的例程

var toFixed:Function = function(number, factor) { 
    return (Math.round(number * factor)/factor); 
} 

凡因子爲10 1000你的電話號碼,100,等等,一個簡單的方法來思考它是0在因素的數量是小數

的數

所以

toFixed(1.23341230123,100)= 1.23

+0

但我根本不想回合。在代碼中我做了一個簡單的劃分,沒有四捨五入。數據類型必須四捨五入。 – Cheeky

+0

另外,使用舍入方法舍入結果的結果爲89.99而不是90。我曾經嘗試過。謝謝 – Cheeky

+0

這就是計算機如何處理浮點精度,沒有什麼可以做的,而且變量類型具有繼承精度。 –

0

對ActionScript中的數字的很好的解釋可以在http://docstore.mik.ua/orelly/web2/action/ch04_03.htm找到。參見4.3.2.1節。浮點精度

一個初步認識報價:

「爲了適應分鐘的差異,你要圓的數字如果是手動的差異將你的代碼的行爲產生不利影響。」

+0

就像我對戴爾上面說,我不想一輪所有。在代碼中,我做了一個簡單的劃分而沒有舍入。數據類型必須四捨五入。 – Cheeky

相關問題