1分でわかるJavaScriptのbig.jsによる小数点の誤差処理

小数点の誤差処理

JavaScriptで例えば「0.1 + 0.2」のような小数の計算をすると0.3ではなく「0.30000000000000004」という想定外の結果を返す。

このような結果にならないようにするにはbig.jsのような誤差処理を行うJavaScriptライブラリを使用する。

big.jsの使い方

cdnで読み込んで使用する場合はHTML内に以下のコードを貼り付ける。

<script src="https://cdn.jsdelivr.net/npm/big.js@6.2.0/big.min.js"></script>

Node.jsの場合は以下の方法でインストールする。

npm install big.js
// CommonJS
const Big = require('big.js')

// ES module
import Big from 'big.js'

あとはnew Bigで最小の小数点を変数か定数に入れてbig.jsのメソッドを使用して計算すれば誤差のない計算結果を返すことができる。

const a = new Big(0.1)
const b = a.plus(0.2)
const result = b.toNumber()

console.log(0.1 + 0.2) // 0.30000000000000004
console.log(result) // 0.3

減算の場合は以下の通り。

const a = new Big(0.3)
const b = a.minus(0.2)
const result = b.toNumber()

console.log(0.3 - 0.2) // 0.09999999999999998
console.log(result) // 0.1

加算と減算以外のメソッドは公式サイトのドキュメントで確認できます。

Methods | big.js API