JavaScriptで数値の近似値、四捨五入、切り上げ、切り捨てをするには「toFixed」、「Mathオブジェクト」、「BigDecimal.js」を使用する複数の方法があります。ここでは1つずつ使用例をご紹介します。
「toFixed」を使用する方法
toFixed関数は数値の近似値を求めます。四捨五入と勘違いしやすいので注意が必要です。
JavaScriptサンプル
1 2 3 |
// toFixedで四捨五入(少数第3位を四捨五入) var num = "1.555"; Number(num).toFixed(2); |
「Mathオブジェクト」を使用する方法
Mathオブジェクトを使用する場合はtoFixedと併用すれば四捨五入、切り上げ、切り捨てがそれぞれ実装可能になりますが、toFixedを使用するので四捨五入は丸め誤差が生じるようです。
Mathオブジェクトの関数
関数 | 用途 |
---|---|
Math.round | 四捨五入 |
Math.ceil | 切り上げ |
Math.floor | 切り捨て |
JavaScriptサンプル
1 2 3 |
// Math.roundで四捨五入(少数第3位を四捨五入) var num = "1.555"; Math.round(Number(num) * 100) / 100; |
「BigDecimal.js」ライブラリを使用する方法
「BigDecimal.js」はJavaScriptでBigDecimalオブジェクトを提供するライブラリです。ライブラリを指定すればJAVAと同様にBigDecimalオブジェクトが使用可能となります。toFixedもMathオブジェクトも丸め誤差が出やすいので正確な値を求めたい場合はこちらを使用する方が良さそうです。
ダウンロード先
https://github.com/iriscouch/bigdecimal.js※ライセンスフリー
HTMLサンプル
ダウンロードしたファイルから「MathContext.js」と「BigDecimal.js」を定義します。
1 2 |
<script type="text/javascript" charset="utf-8" src="./js/MathContext.js"></script> <script type="text/javascript" charset="utf-8" src="./js/BigDecimal.js"></script> |
BigDecimalオブジェクトの関数
関数 | 用途 |
---|---|
BigDecimal.prototype.ROUND_HALF_UP | 四捨五入 |
BigDecimal.prototype.ROUND_UP | 切り上げ |
BigDecimal.prototype.ROUND_DOWN | 切り捨て |
JavaScriptサンプル
1 2 3 |
// BigDecimalで四捨五入(少数第3位を四捨五入) var num = "1.555"; num.setScale(2, BigDecimal.prototype.ROUND_HALF_UP); |