目次

目次

JavaScript で安全に扱える最大整数

鈴木
鈴木
最終更新日2019/09/20 投稿日2019/09/20

大きい値を扱っていたところ計算がめちゃくちゃになったんで、浮動小数点演算的にダメなんだろうなーと思って調べたところ

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に傾倒する人です

目次