web-dev-qa-db-ja.com

DecimalFormatの丸め

これが私が見ているものを説明するための小さなコードです

float floater = 59.999f;

DecimalFormat df = new DecimalFormat("00.0");

System.out.println(df.format(floater));

これは印刷します:

60.0

印刷したい

59.9

私は何をする必要がありますか?

21
mainstringargs

DecimalFormatを使用する前に、この行を追加してください。

df.setRoundingMode(RoundingMode.DOWN);

他の丸めモードを見て、どれがあなたに最適かを確認してください。

注:この方法は、JDK1.6以降でのみ機能します。

32
float d = 59.999f;
BigDecimal bd = new BigDecimal(d);
// Use the returned value from setScale, as it doesn't modify the caller.
bd = bd.setScale(1, BigDecimal.ROUND_FLOOR);
String formatted = bd.toString();
1
Pablo Fernandez