2013-02-06 72 views
0

在這裏,我有我的web應用程序有問題(在Chrome和Firefox和測試的NodeJS):JavaScript浮動計算錯誤

當我運行(1.2 - 1)返回0.19999999999999996作爲結果。

有誰知道爲什麼?

+1

此頁面可以幫助你:HTTP://浮點貴。 de/ – TryingToImprove

+0

你也可以試試這個:'((1.2 * 10 - 1 * 10)/ 10)=== .2' – Ragnarokkr

回答

2

可以解決你的問題: (1.2 - 1).toFixed(1)* 1 // 0.2

+0

。這很好 –

1

您可以使用JavaScript更詳細的toFixed方法:數的

方法

在JavaScript 1.5

ECMAScript第四版的ECMAScript第三版

語法

實現

ber.toFixed([位])

參數

數字 的小數點後出現的數目;這可能是0到20之間的一個值,包括0和20,並且實現可以可選地支持更大範圍的值。如果省略該參數,它被視爲0。

返回

數的字符串表示,不採用指數計數法,並且具有小數點後的數字準確的數字。如有必要,數字被舍入,小數部分填充零(如有必要),使其具有指定的長度。如果number大於1e + 21,則此方法僅調用Number.toString()並以指數表示形式返回字符串。

拋出

的RangeError 如果數字太小或太大。介於0和20之間的值不會導致RangeError。允許實現支持越來越小的值。 類型錯誤 如果在不是數字的對象上調用此方法。

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Number/toFixed