小数点N番目まで四捨五入

今回は、小数点のN番目まで四捨五入する方法について観ていきたいと思います。

色々な方法はあるかと思われますが、今回は、Math.round()と String.format()だけにしておきます。

 Math.round() 

Math함수의 round()は実数の小数点の1番目を四捨五入して整数を返します。でも、このメソッドを活用することで小数点のN番目まで値を返させることもできます。

double pie = 3.14159265358979;
System.out.println(Math.round(pie)); // 3
System.out.println(Math.round(pie*100)/100.0); // 3.14
System.out.println(Math.round(pie*1000)/1000.0); // 3.142

 String.format() 

String.format()は返す文字列の形を指定するメソッドですが、このメソッドを利用することでMath.round()と同じようなN番目まで四捨五入した形を表示することができます。

double pie = 3.14159265358979;
double money = 4424.243423;
System.out.println(String.format("%.2f", pie)); // 3.14
System.out.println(String.format("%.3f", pie)); // 3.142
System.out.println(String.format("%,.3f", money)); // 4,424.243

 Math.round()と String.format()の違い 

double money = 5000.000;
System.out.println(Math.round(money*1000)/1000); // 5000
System.out.println(String.format("%.3f", money)); // 5000.000

コードのようにMath.round()は小数点が0の場合は表示しません。でも、String.format()は小数点が0でも表示しているので、場合によって使い分ければ良いかと思います。


終わりに

特に業務では使ったことはないですが、最近趣味でアルゴリズムやっていますが、そこで%に関する問題があったので、まとめてみました。

参考

https://coding-factory.tistory.com/250

コメントを残す