java十进制string格式
我需要格式化一个十进制值到一个string,我总是显示至less2个小数点,最多4个。
所以例如
"34.49596" would be "34.4959" "49.3" would be "49.30"
这可以通过使用String.format命令来完成吗? 或者是有一个更容易/更好的方式来做到这一点在Java中。
你想要java.text.DecimalFormat。
DecimalFormat df = new DecimalFormat("0.00##"); String result = df.format(34.4959);
是的,你可以用String.format
做到这一点:
String result = String.format("%.2f", 10.0 / 3.0); // result: "3.33" result = String.format("%.3f", 2.5); // result: "2.500"
这是一个小的代码片段,可以完成这项工作:
double a = 34.51234; NumberFormat df = DecimalFormat.getInstance(); df.setMinimumFractionDigits(2); df.setMaximumFractionDigits(4); df.setRoundingMode(RoundingMode.DOWN); System.out.println(df.format(a));
java.text.NumberFormat可能是你想要的。
你想要java.text.DecimalFormat
NumberFormat和DecimalFormat绝对是你想要的。 另外,请注意NumberFormat.setRoundingMode()
方法。 您可以使用它来控制在格式化过程中应用舍入或截断的方式。