今回は、小数点の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でも表示しているので、場合によって使い分ければ良いかと思います。
終わりに
特に業務では使ったことはないですが、最近趣味でアルゴリズムやっていますが、そこで%に関する問題があったので、まとめてみました。
