- Js的有7中內建型別,又分為6種基本型別和1個Object型別。6種基本型別是string、number、boolean、symbol、null、undefined。number型別是浮點型別,沒有整型。浮點型別是基於IEEE754標準實現。NaN屬於number,NaN不等於NaN。
-
0.1 + 0.2 = 0.30000000000000004
問題,參考連結:https://github.com/camsong/bl...
浮點數的儲存規則:
- 符號位S:第 1 位是正負數符號位(sign),0代表正數,1代表負數
- 指數位E:中間的 11 位儲存指數(exponent - 1023),用來表示次方數
- 尾數位M:最後的 52 位是尾數(mantissa),超出的部分自動進一舍零
展示精度問題的資料時:
function strip(num, precision = 12) {
return +parseFloat(num.toPrecision(precision));
}
-
toPrecision
是處理精度,精度是從左至右第一個不為0的數開始數起。 -
toFixed
是小數點後指定位數取整,從小數點開始數起。
解決精度問題:
http://mathjs.org/
https://github.com/nefe/numbe...
解決大數問題:
https://github.com/MikeMcl/bi...