SMA*_*AVA 12 java floating-point double
我需要格式化(而不是舍入)a double到2位小数.
我尝试过:
String s1 = "10.126";
Double f1 = Double.parseDouble(s1);
DecimalFormat df = new DecimalFormat(".00");
System.out.println("f1"+df.format(f1));
Run Code Online (Sandbox Code Playgroud)
结果:
10.13
Run Code Online (Sandbox Code Playgroud)
但我要求输出 10.12
Boh*_*ian 20
呼叫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));
Run Code Online (Sandbox Code Playgroud)
产量
10.12
Run Code Online (Sandbox Code Playgroud)
您可以将格式化程序的舍入模式设置为DOWN:
df.setRoundingMode(RoundingMode.DOWN);
Run Code Online (Sandbox Code Playgroud)
您尝试过RoundingMode.FLOOR吗?
String s1 = "10.126";
Double f1 = Double.parseDouble(s1);
DecimalFormat df = new DecimalFormat(".00");
df.setRoundingMode(RoundingMode.FLOOR);
System.out.println("f1"+df.format(f1));
Run Code Online (Sandbox Code Playgroud)