格式化双精度而不舍入
2022-09-03 04:39:16
我需要格式化(而不是舍入)小数点后2位。double
我尝试了:
String s1 = "10.126";
Double f1 = Double.parseDouble(s1);
DecimalFormat df = new DecimalFormat(".00");
System.out.println("f1"+df.format(f1));
结果:
10.13
但我要求输出是10.12
我需要格式化(而不是舍入)小数点后2位。double
我尝试了:
String s1 = "10.126";
Double f1 = Double.parseDouble(s1);
DecimalFormat df = new DecimalFormat(".00");
System.out.println("f1"+df.format(f1));
结果:
10.13
但我要求输出是10.12
调用 setRoundingMode 以适当地设置 RoundingMode:
String s1 = "10.126";
Double f1 = Double.parseDouble(s1);
DecimalFormat df = new DecimalFormat(".00");
df.setRoundingMode(RoundingMode.DOWN); // Note this extra step
System.out.println(df.format(f1));
输出
10.12
您可以将格式化程序的舍入模式设置为 DOWN:
df.setRoundingMode(RoundingMode.DOWN);