HOWTO · JavaScript
JavaScript の BigDecimal
この記事は、JavaScript での BigDecimal の使用法を理解するのに役立ちます。
この記事では、JavaScript での BigDecimal の使用について説明します。
JavaScript での BigDecimal の使用
JavaScript で BigDecimal がどのように機能するかを理解する前に、BigDecimal について知っておく必要があります。BigDecimal は、32 ビット整数スケールのスケーリングされていない任意精度の整数値で構成されます。
スケールがゼロまたは正の場合、小数点の右側の桁数です。整数が負の場合、スケーリングされていない値に 10 を掛けてスケールの否定の累乗にします。
BigDecimal は、2 進浮動小数点整数の 10 進表現を使用して、等式とハッシュコードを決定します。これは、正確な形式を使用する Long と Double の数値間の変換とは異なる結果を生成します。
コードを実行する前に、BigDecimal の npm パッケージをインストールする必要があることに注意してください。
以下のコードを js 拡張子ファイルとして保存します。
let bDecimal = require('bigdecimal');
let num = new bDecimal.BigInteger('123456abcdefghijklmn7890', 25);
console.log('num is ' + num);
let newD = new bDecimal.BigDecimal(num);
let k = new bDecimal.BigDecimal('4567890.12345612345678901234567890123');
console.log('newD * k = ' + newD.multiply(k));
let two = new bDecimal.BigDecimal('2');
console.log('Average = ' + newD.add(k).divide(two));
multiply()、add()、divide() などのさまざまなメソッドが表示されます。add() メソッドは、1つの BigDecimal オブジェクト値を他の値に追加します。newD は BigDecimal オブジェクトであり、newD は k に追加されます。
multiply() メソッドは 1つの BigDecimal オブジェクト値を別の値に乗算しますが、divide() メソッドは 1つの BigDecimal 値を別の値で除算します。
Double または Float を BigDecimal に変換する場合、Double および Float の 2 進小数表現は単純に小数表現に変換されないため、注意が必要です。
出力:

BigDecimal は、財務データの算術演算や、JavaScript 整数(IEEE-754 浮動小数点)型を超えるものに最適です。Decimal は新しい ECMAScript 標準に含まれていませんでした。