メモ_JavaScriptでの有効桁数

Pythonで処理した大きな桁の数(例えば2の69乗=590295810358705700000)をFlaskアプリなどでWebページに表示する際、Java scriptで別処理を行ってから表示すると、数字が丸まったり指数表示になってしまうケースがあります。

原因はJavaScriptでの有効桁数の上限です。JavaScriptでの数値はIEEE 754の倍精度浮動小数点数として表現されます。そのため、10進での有効桁数は約16桁です。ただし、JavaScriptでは安全な整数と呼ばれる範囲内でしか正確に計算できません。安全な整数とは、-2の53乗から2の53乗-1までの整数です。

これを回避するには、bignumber.jsやdecimal.jsといった数値計算ライブラリを使います。