Java - 丸めて、小数点n番目桁まで出力

丸めて、小数点n番目桁まで出力する方法を紹介します。

String.format()

最も簡単なのは、 String.format()を利用する方法です。

format(format, args)は引数として渡されたformatに合わせて文字列を作成戻してくれます。

次のようにformatを "%.6f"に渡すと、小数点第7桁を四捨五入して、小数点6桁目まで表現という意味です。

double pi = 3.14159265359;

System.out.println(String.format("%.6f", pi));

結果を見ると、小数点6桁目まで表現がされます。

3.141593

Math.round()

Math.round()を利用して、小数点n番目桁まで出力することができます。

round(float a)は引数として渡されたfloatをもっとも近いintに丸めて返します。

System.out.println(Math.round(3.1));
System.out.println(Math.round(2.9));
System.out.println(Math.round(2.5));
System.out.println(Math.round(2.49));

結果を見ると、丸めて近いintに返されることがわかります。

3
3
3
2

次のようにfloatに100を乗じた値を round()に丸めて、再び100で割ると、小数点2番目建てまで出力されます。

double pi = 3.14159265359;

System.out.println(Math.round(pi * 100));

System.out.println(Math.round(pi * 100) / 100.0);

Output:

314
3.14

上記のコードは、 pow()を利用して、次のように関数にすることができます。 pow(10.0, n)は10.0のn乗を返します。

double pi = 3.14159265359;
int n = 6;
System.out.println(round(pi, n));


public double round(double number, int n) {
    double m = Math.pow(10.0, n);
    return Math.round(number * m) / m;
}

Output:

3.141593
codechachaCopyright ©2019 codechacha