知識儲備

weixin_33807284發表於2019-02-25
  1. Js的有7中內建型別,又分為6種基本型別和1個Object型別。6種基本型別是string、number、boolean、symbol、null、undefined。number型別是浮點型別,沒有整型。浮點型別是基於IEEE754標準實現。NaN屬於number,NaN不等於NaN。
  2. 0.1 + 0.2 = 0.30000000000000004 問題,參考連結:https://github.com/camsong/bl...

浮點數的儲存規則:

clipboard.png
clipboard.png
clipboard.png

  • 符號位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...

相關文章