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()方法。 您可以使用它来控制在格式化过程中应用舍入或截断的方式。