数学

小数第N桁四捨五入

小数第N桁四捨五入

ここでは、指定した小数桁で四捨五入を行う方法を紹介します。

12.34532の小数第2桁を四捨五入 → 12.3

Javaには、小数第1桁を四捨五入するMath.roundメソッドが用意されています。

このメソッドは、小数第1桁で四捨五入して整数の値を求めるメソッドです。

四捨五入する小数桁数を指定することはできません。

Math.roundメソッド

public static int Math.round( float a )
public static int Math.round( double a )
・引数aで指定した数値に最も近い整数値を返します。

  パラメータ a : 四捨五入したい数値

  戻り値     aを四捨五入した整数値を返します。

ここでは、四捨五入する数値の桁数を一時的に変えて、Math.roundで四捨五入を行い、その後に元の桁数に戻す方法を紹介します。

例えば、1234.567を小数第2位で四捨五入を行うことを考えます。

この場合、1234.567を10倍して12345.67にした後にMath.round( 12345.67 )で四捨五入した整数値12346を求めます。

その後に10で割れば1234.6が求められます。

同様に、1234.567を小数第3位で四捨五入を行うことを考えます。

この場合、1234.567を100倍して123456.7にした後にMath.round( 123456.7 )で四捨五入した整数値123457を求めます。

その後に100で割れば1234.57が求められます。

このように、四捨五入を行う桁数をNとするとき、元の値に10の( N - 1 )乗を値を掛けた値をMath.roundに渡し、その値を10の( N - 1 )乗で割ることで指定桁数の四捨五入を求めることができます。

10の( N - 1 )乗は以下の累乗メソッドにより、簡単に計算することができます。

10の( N - 1 )乗は、Math.pow( 10.0, (double)( N - 1 ) )で計算できます。

Math.powメソッド

public static double Math.pow( double a, double b )
・aのb乗を返します。

  パラメータ a : 基数の値。
        b : 指数の値。

  戻り値     aをbだけ累乗した値を返す。

Javaソースコード

以下は、小数点第N点で四捨五入を行うJavaソースコードの例です。

RoundN.java

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
public class RoundN {
	// aの小数第ketaを四捨五入するメソッド
	private static double roundn( double a, int keta )
	{
		long r;
		double p;

		p = Math.pow( 10.0,  (double)( keta - 1 ) );
		r = Math.round( a * p );
		return  (double)r / p;		
	}


	//メイン
	public static void main( String[] args ) {
		double a;

		// 四捨五入される値
		a = 12.34562;

		// 四捨五入の結果を表示
		System.out.println( a +"の小数第1桁を四捨五入: " + roundn( a, 1 ) );
		System.out.println( a +"の小数第2桁を四捨五入: " + roundn( a, 2 ) );
		System.out.println( a +"の小数第3桁を四捨五入: " + roundn( a, 3 ) );
		System.out.println( a +"の小数第4桁を四捨五入: " + roundn( a, 4 ) );
	}
}

コンパイル ソースコードが「ANSI」の場合

C:\talavax\javasample>javac -encoding sjis RoundN.java

コンパイル ソースコードが「UTF-8」の場合

C:\talavax\javasample>javac RoundN.java

実行

C:\talavax\javasample>java RoundN

出力結果

12.34532の小数第1桁を四捨五入: 12.0
12.34532の小数第2桁を四捨五入: 12.3
12.34532の小数第3桁を四捨五入: 12.35
12.34532の小数第4桁を四捨五入: 12.346

結果、指定桁数での四捨五入に成功していることが分かります。

001
002
003
004
005
006
007
008
009
010
011
public class RoundN {
	// aの小数第ketaを四捨五入するメソッド
	private static double roundn( double a, int keta )
	{
		long r;
		double p;

		p = Math.pow( 10.0,  (double)( keta - 1 ) );
		r = Math.round( a * p );
		return  (double)r / p;		
	}

RoundNは、指定小数桁数で四捨五入するメソッドです。

aに四捨五入する値、ketaに四捨五入する小数桁数を渡すと結果を返すメソッドです。

以上です。

関連コンテンツ

数学に関係するJavaのメソッドやソースコードなどを紹介しています。

2022.10.25

小数点以下繰り上げ Math.ceilメソッドをJavaのソースコードを使って詳しく説明しています。

2020.03.23

小数点以下繰り下げ Math.floorメソッドをJavaのソースコードを使って詳しく説明しています。

2020.03.23

指定した小数N桁で切り捨てを行う方法を紹介します。

2020.03.23

Javaを使った簡単な応用プログラム(生年月日から年齢を計算プログラムなど)を紹介しています。

2022.07.07

基本的な計算である足し算(加法)/引き算(減法)/掛け算(乗法)/割り算(除法)を行うプログラム作成。

2020.03.23

画像フォーマット形式・色・大きさ・傾きなどの変更、特定の図形(文字・記号など)を見つけたり、取り出したりする画像処理について詳しく解説。

2015.11.29

日本で使われてきた伝統文様「和柄」について解説しています。

2022.07.27

プログラミング、ITに関する用語をまとめています。

2022.10.17

メソッドを抜けるときに使用するreturn文について説明しています。

2020.03.20

変数やクラスに格納されている値をコンソール出力する方法は?

2020.03.23

プログラムの最初に実行されるメソッドは?

2022.12.13

プログラミングで使う変数って何?

2020.03.23

Javaのプログラムを書いてみませんか?プログラムの書き方をくわしく説明しています。

2020.03.23

「Javaソースコード」から実行可能な「オブジェクトコード」に変換する方法をくわしく説明しています。

2020.03.23

プログラミング言語とは?種類や特徴について説明しています。

2022.08.03

メソッドの定義方法を詳しく解説しています。Javaのサンプルソースコードを使った説明もあります。

2020.03.23

自然数と整数って何が違う?

2020.03.23

広告