DecimalFormatの丸め

decimal floating-point java
DecimalFormatの丸め

ここに私が見ているものを説明する小さなコードがあります

float floater = 59.999f;

DecimalFormat df = new DecimalFormat("00.0");

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

これは印刷します:

60.0

印刷してほしい

59.9

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

  14  2


ベストアンサー

`DecimalFormat`を使用する前に次の行を追加します。

df.setRoundingMode(RoundingMode.DOWN);

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

注:このメソッドはJDK 1.6以降でのみ機能します

24


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


タイトルとURLをコピーしました