HOWTO · JavaScript

JavaScript の BigDecimal

この記事は、JavaScript での BigDecimal の使用法を理解するのに役立ちます。

この記事では、JavaScript での BigDecimal の使用について説明します。

JavaScript での BigDecimal の使用

JavaScript で BigDecimal がどのように機能するかを理解する前に、BigDecimal について知っておく必要があります。BigDecimal は、32 ビット整数スケールのスケーリングされていない任意精度の整数値で構成されます。

スケールがゼロまたは正の場合、小数点の右側の桁数です。整数が負の場合、スケーリングされていない値に 10 を掛けてスケールの否定の累乗にします。

BigDecimal は、2 進浮動小数点整数の 10 進表現を使用して、等式とハッシュコードを決定します。これは、正確な形式を使用する Long と Double の数値間の変換とは異なる結果を生成します。

コードを実行する前に、BigDecimalnpm パッケージをインストールする必要があることに注意してください。

以下のコードを 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 オブジェクト値を他の値に追加します。newDBigDecimal オブジェクトであり、newDk に追加されます。

multiply() メソッドは 1つの BigDecimal オブジェクト値を別の値に乗算しますが、divide() メソッドは 1つの BigDecimal 値を別の値で除算します。

Double または Float を BigDecimal に変換する場合、Double および Float の 2 進小数表現は単純に小数表現に変換されないため、注意が必要です。

出力:

JavaScript での BigDecimal の使用

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