JavaScriptで小数を四捨五入、切り捨て、切り上げする方法

投稿日: / 更新日:

JavaScriptで小数点を整数に直したい時に四捨五入、切り捨て、切り上げする方法を説明します。計算系の処理はMathオブジェクトを利用します。切り捨てはfloor()、切り上げはceil()、四捨五入はround()です。

サンプルコード

切り捨て

// 小数点を切り捨てする ( → 1 )
var result = Math.floor( 1.1111 ) ;

このコードを確認する

切り上げ

// 小数点を切り上げする ( → 2 )
var result = Math.ceil( 1.66666 ) ;

このコードを確認する

四捨五入

// 小数点を四捨五入する ( → 5 )
var result = Math.round( 4.7111 ) ;

このコードを確認する

小数点n位

小数点第n位までを処理の対象にしたい場合、JavaScriptではそのような機能がないので、こちら側でオリジナルの計算処理を作ってやる必要があります。下記の関数をご利用下さい。round(四捨五入)の部分を、用途に合わせてfloor(切り捨て)やceil(切り上げ)に変更して下さい。

// 小数点n位までを残す関数
// number=対象の数値
// n=残したい小数点以下の桁数
function floatFormat( number, n ) {
	var _pow = Math.pow( 10 , n ) ;

	return Math.round( number * _pow ) / _pow ;
}
// 少数点以下4桁まで残して四捨五入 ( → 1.6667 )
var result = floatFormat( 1.66666666, 4 ) ;

このコードを確認する

説明

少数を整数に直す

Math.floor()Math.ceil()Math.round()で、引数に指定した数値の小数点以下を切り捨て、切り上げ、四捨五入することができます。処理されるのは小数点以下であり、桁数を指定することができません。

項目説明
Math.floor()切り捨て
Math.ceil()切り上げ
Math.round()四捨五入

小数点第n位を指定するには?

小数点以下第2位、第3位というように指定して切り捨て、切り上げ、四捨五入をするには工夫が必要です。例えば、少数点第2位までを残したいのであれば、まず元の数値を2桁増加させます。そして、Mathオブジェクトで計算をした後に今度は割り算で2桁、戻せばいいわけです。例えば、小数点第2位までを残したい場合は下記の通りです。

Math.floor( 1.4444444 * 100 ) / 100

このロジックは、小数点以下第10位、第20位になろうと変わりがありません。Math.pow()は、第1引数を第2引数で累乗するメソッドです。第1引数に10を指定して、第2引数に桁数を指定すれば、このロジックに利用することができます。

// 小数点第4位まで残したい
var n = 4 ;

// 計算 ( Math.pow( 10, 4 ) = 10000 )
Math.floor( 1.4444444 * Math.pow( 10, n ) ) / Math.pow( 10, n )