大きい値を扱っていたところ計算がめちゃくちゃになったんで、浮動小数点演算的にダメなんだろうなーと思って調べたところ
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER
MAX_SAFE_INTEGER 定数は 9007199254740991 である値です。その数である理由は JavaScript が IEEE 754 で指定されたとおり倍精度浮動小数点型数値を使用し安全に -(2^53 – 1) と 2^53 – 1 との間の数を表すことができるからです。
とめちゃめちゃ少なかったです。 C#などでよくある、最大数を示す定数にMAX_VALUEというものがあり
coffee> Number.MAX_VALUE
1.7976931348623157e+308
っていうのをよく使うんですが、MAX_SAFE_INTEGERだと
coffee> Number.MAX_SAFE_INTEGER
9007199254740991
と出ます。
coffee> 9007199254740990
9007199254740990
coffee> 9007199254740990 + 1
9007199254740991
coffee> 9007199254740990 + 2
9007199254740992
coffee> 9007199254740990 + 3
9007199254740992
coffee> 9007199254740990 + 4
9007199254740994
coffee> 9007199254740990 + 5
9007199254740996
とのことで、9000兆円欲しい!の際にはご注意ください。
鈴木
和服とvapeとСистемаと醗酵とたまごふわふわとカッティングシェイプスとジャージークラブとjuke/fwkに傾倒する人です