(JavaScript)JavaScript 浮點數陷阱/解決方法

from https://github.com/camsong/blog/issues/9

本篇同步發佈在Medium平台上 Medium連結

用Javascript來做加減乘除,如果是使用小數的話,跑出來的數字會非常奇特,主要問題在於Javascript運算是依循IEEE754的規範,在運算時會轉換成二進制來計算數值,而浮點數在轉成二進制時會形成無窮迴圈,最後再轉換成十進制,進而產生運算誤差。

舉個例子,0.1 + 0.2,在Javascript會是這樣子計算的。

解決方法

1. 引入math.js

from https://mathjs.org/

詳細流程可以參考此篇文章 优秀的js拓展数学库math.js,解决精度问题

2. 自訂加減乘除運算程式碼

加.add()、減.sub()、乘.mul()、除.div()

引入下方的javascript就能正常使用加減乘除運算啦!

comments powered by Disqus