bignumber.js - Node.js

bignumber.js とは

任意精度の算術演算用の JavaScript ライブラリです。

簡単に内容をいうと、big.js は、最小限の任意精度ライブラリ、bignumber.js は、除算を伴う演算が使用されない限り、精度が失われることを心配する必要がないため、おそらく金融アプリケーションに適していて、decmal.js は、非常に小さい値または大きい値をより効率的に処理できるため、より科学的なアプリケーションに適している可能性があるとのこと

インストール

npm install bignumber.js

ライブラリの読み込み・設定方法

ライブラリの読み込み

const BigNumber = require('bignumber.js');

HTMLファイルに埋め込んで利用するには、CDNを利用します。

CDNを利用する場合

<script src='https://cdn.jsdelivr.net/npm/bignumber.js@9.1.2/bignumber.min.js'></script>

bignumber.js で端数処理の設定をするには、「 config 」を使います。

次の場合は、小数点以下第5位で切り下げするという設定です。

設定方法

BigNumber.config({ DECIMAL_PLACES: 5, ROUNDING_MODE: 0 });

DECIMAL_PLACES は、小数点以下の桁数。ROUNDING_MODE は、丸めモードです。

そのほかにも、設定小目があります。公式サイト参照してください。

次の表は、丸めモードの設定内容です。

キーワード 説明
ROUND_UP 0 切り上げ(0から離れていく)
ROUND_DOWN 1 切り下げ(0へと近づいていく)
ROUND_CEIL 2 切り上げ(正の方向へ)
ROUND_FLOOR 3 切り下げ(負の方向へ)
ROUND_HALF_UP 4 四捨五入(0から離れていく)
ROUND_HALF_DOWN 5 四捨五入(0へと近づいていく)
ROUND_HALF_EVEN 6 基本は四捨五入だが、5の場合には、偶数になる方に丸められる
ROUND_HALF_CELL 7 四捨五入(正の方向へ)
ROUND_HALF_FLOOR 8 四捨五入(負の方向へ)

小数点切り捨てと切り下げの違いは、次のような違いです。

意味
切り捨て 求める位未満の端数を捨てる 11.35 → 11、-1.5 → -1
切り下げ 数値が小さくなるほうに向かって端数を処理 11.35 → 11、-1.5 → -2、-111.795 → -112、111.795 → 111

設定のデフォルト値は、DECIMAL_PLACES : 20、ROUNDING_MODE : ROUND_HALF_UP(四捨五入)

四則演算

四則演算をするには、次のようにします。

const BigNumber = require('bignumber.js');

// 足し算
console.log(BigNumber(10).plus(10).toString());

// 引き算
console.log(BigNumber(10).minus(4).toString());

// 掛け算
console.log(BigNumber(10).times(4).toString());

// 割り算
console.log(BigNumber(10).div(4).toString());

// 割り算の整数
console.log(BigNumber(10).idiv(4).toString());

// 割り算の剰余
console.log(BigNumber(10).mod(4).toString());

指定した精度で端数処理する

指定した精度で端数処理するには、dp を私用します。

const BigNumber = require('bignumber.js');
BigNumber.config({ DECIMAL_PLACES: 5, ROUNDING_MODE: 1 });

console.log(BigNumber(1).div(3).toString());
console.log(BigNumber(1).div(3).dp(2).toString());