2013-05-17 45 views
9

我想使用javascript進行乘法運算。當我乘以2和0.15時,得到了0.3,但是當我乘以3和0.15時,我得到了0.44999999999999996我想得到0.45,例如result.How can I do it與JavaScript?JavaScript中的乘法int和float

+1

JavaScript中沒有'int'或'float'。一切都是'雙'。話雖如此,如果你想轉換你的值,你正在尋找['toFixed()'](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Number/toFixed)成一個字符串。 – Zeta

+0

http://en.wikipedia.org/wiki/Floating_point – Sirko

+0

如何獲得0.45乘法0.15和3的結果? –

回答

12

這是一個舍入誤差。你可能想圓你數到數字的固定金額,如:

parseFloat((your_number).toFixed(2)); 
+1

這很好,但它產生了一個String FWIW! –

+0

所以parsefloat它 – mplungjan

+0

@mplungjan是的,我知道,OP可能不會。 –

4

不幸的是這種情況發生在使用浮點運算的任何語言。這是浮點運算被編碼爲二進制,執行操作並從二進制文件解碼以便以期望的形式報告答案時產生的工件。

根據您對輸出的處理方式,您可以調用類似round()的函數來四捨五入到小數位數,或者使用稱爲公差的(小)數字來比較輸出值。例如。如果兩個數字的絕對差值小於該容差,則認爲兩個數字相等。

+0

謝謝很多:) –