Java での小数点以下 2 桁への丸め
Java で浮動小数点数を特定の小数点以下の桁に丸めようとすると、多くの開発者が課題に遭遇します。これは、目的の出力が double のままでなければならない場合に特に当てはまります。
一般的なアプローチの 1 つは、次のコードに示すように Math.round() を利用することです。
class Round { public static void main(String[] args) { double a = 123.13698; double roundOff = Math.round(a * 100) / 100; System.out.println(roundOff); } }
ただし、このアプローチは望ましい結果が得られないことがよくあります。 123.14 に丸める代わりに、123 が出力されます。
この問題を修正するには、4 行目に若干の変更が必要です。
double roundOff = Math.round(a * 100.0) / 100.0;
乗算係数に .0 を追加すると、結果はは、小数点以下 2 桁の double にキャストされます。これにより、最終結果にも小数点以下 2 桁が含まれることが保証されます。
あるいは、@Rufein が提案しているように、丸められた値を double にキャストすることもできます。
double roundOff = (double) Math.round(a * 100) / 100;
このアプローチでは、効果的に次の結果も生成されます。目的の出力 123.14 (小数点以下 2 桁)。
以上がJavaで倍精度浮動小数点数を小数点以下2桁に正しく四捨五入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。