【JavaScript】
小数を四捨五入・切り上げ・切り捨てする方法
round(), ceil(), floor(), trunc()メソッド
投稿日 2021/09/25 更新日 2021/09/25
こんにちは。当サイトの管理者「元木皇天」です。
システムを制作していると、小数点以下の値を四捨五入したり切り上げ・切り捨てをしたい場面はよくあると思います。
今回は、そんな小数点以下の値をJavaScriptのMathオブジェクトを使用して処理する方法について解説したいと思います。
環境
OS:MacOS Big Sur
GoogleChrom:バージョン94.0.4606.54
やりたいこと
1.小数点以下を四捨五入する
以下実装イメージ
四捨五入した値は0です。
2.小数点以下を切り上げする
以下実装イメージ
切り上げした値は0です。
3.小数点以下を切り捨てする
以下実装イメージ
切り捨てした値は0です。
4.小数点以下を取り除く
以下実装イメージ
小数点以下を取り除いた値は0です。
参考文献
・JavaScript コードレシピ集
・改訂3版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで
・Math.round()公式リファレンス
・Math.ceil()公式リファレンス
・Math.floor()公式リファレンス
・Math.trunc()公式リファレンス
四捨五入する方法
JavaScriptを使用して小数を四捨五入するにはMath.round()を使用します。
こちらは引数にnumber型の値を渡して使用します。
では、実際の使用例を見てみましょう。
Math.round(1.49); // 1が出力される Math.round(1.5); // 2が出力される Math.round(1); // 1が出力される Math.round(-1.5); // -1が出力される Math.round(-1.51); // -2が出力される
ここで注意すべきは上記4, 5行目のマイナスの値の四捨五入です。
感覚的に、"-1.5"を四捨五入すると"-2"になるような気がしますが、JavaScriptでは"-1"になり、"-1.51" 以降を四捨五入すると"-2"になりますので気をつけてください。
以下に、数値を入れるとround()の結果が出力される項目を用意したので、よかったら動作イメージの確認に使ってみてください。
四捨五入した値は0です。
切り上げする方法
JavaScriptを使用して小数を切り上げするにはMath.ceil()を使用します。
こちらも引数にnumber型の値を渡して使用します。
では、実際の使用例を見てみましょう。
Math.ceil(1.95); // 2が出力される Math.ceil(1); // 1が出力される Math.ceil(1.0001); // 2が出力される Math.ceil(-0.95); // 0が出力される Math.ceil(-1); // -1が出力される Math.ceil(-1.0001); // -1が出力される
公式のドキュメントによると返却値は、引数として与えた数以上の最小の整数、と記載されています。
そのため、マイナスの値の場合は正の方向で見て最小の整数ということになるので、マイナスの値は小数以下が切り捨てされた値が得られます。
以下に、数値を入れるとceil()の結果が出力される項目を用意したので、よかったら動作イメージの確認に使ってみてください。
切り上げした値は0です。
切り捨てする方法
JavaScriptを使用して小数を切り捨てするにはMath.floor()を使用します。
こちらも引数にnumber型の値を渡して使用します。
では、実際の使用例を見てみましょう。
Math.floor(1.95); // 1が出力される Math.floor(1); // 1が出力される Math.floor(1.0001); // 1が出力される Math.floor(-0.95); // -1が出力される Math.floor(-1.0001); // -2が出力される
公式のドキュメントによると返却値は、指定された数値以下の最大の整数、と記載されています。
そのため、マイナスの値の場合は負の方向で見て引数の値以下の最大の整数ということになるので注意が必要です。
以下に、数値を入れるとfloor()の結果が出力される項目を用意したので、よかったら動作イメージの確認に使ってみてください。
切り捨てした値は0です。
小数点以下を取り除く方法
JavaScriptを使用して小数点以下を取り除くにはMath.trunc()を使用します。
こちらも引数にnumber型の値を渡して使用します。
では、実際の使用例を見てみましょう。
Math.trunc(0.95); // 0が出力される Math.trunc(1); // 1が出力される Math.trunc(1.0001); // 1が出力される Math.trunc(-0.95); // 0が出力される Math.trunc(-1.0001); // -1が出力される
公式のドキュメントによると、引数として与えた数の小数部の桁を取り除くことによって整数部を返します、と記載されています。
つまり、小数を含む値の整数部のみ取り出して値を得るメソッドということになります。
以下に、数値を入れるとtrunc()の結果が出力される項目を用意したので、よかったら動作イメージの確認に使ってみてください。
小数点以下を取り除いた値は0です。
まとめ
小数点以下を四捨五入 => Math.round()
小数点以下を切り上げ => Math.ceil()
小数点以下を切り捨て => Math.floor()
小数点以下を取り除く => Math.trunc()