💰
JavaScript で、税込み計算をしやすくした
はじめに
こんにちは、ラブグラフエンジニアの熊谷です。
JavaScript に限らずですが、税込み計算をおこなう際には、小数を含む計算が必要になります。
今回は簡単な内容ですが、備忘録としてその方法についてまとめていきたいと思います。
よろしくお願いします。
浮動小数点型の丸め誤差問題
浮動小数点の計算をプログラムでおこなうと、結果に誤差が出てしまいます。
JavaScript においても同様です。
例えば「0.3」が「0.300000000000000...」になったりしてしまいます。
console.log(0.1 + 0.2); // 出力: 0.30000000000000004
このような丸め誤差は、特に税込み計算などの場面で問題となってきますね。
浮動小数点の計算に bignumber.js を利用して計算する
JavaScript に限らず税込み計算、つまり浮動小数点を含んだ計算をおこなう場合には、
今回は bignumber.js を利用することにしました。
import BigNumber from 'bignumber.js';
const priceWithoutTax = 3800;
const taxRate = 1.1;
// 小数点以下を切り捨て
Math.floor(new BigNumber(priceWithoutTax).times(taxRate));
>> 4180
コードの解説
- ライブラリのインポート: bignumber.js をインポートします。
- 税込み前の金額と、税率を BigNumber への変換し計算します。
- 計算結果は小数点以下を切り捨てて返します。
とすることで、小数点を含む計算においても正しい計算結果を出力することができます。
まとめ
bignumber.js を使うことで、JavaScriptでも税込み計算が可能になりました。
この他にもより良い方法などあれば、コメントで教えて下さい。
Discussion