我需要将一个十进制值格式化为一个字符串,在这个字符串中我总是显示至少2个小数,最多4个小数。
举个例子
"34.49596" would be "34.4959" "49.3" would be "49.30"
可以使用 String.format 命令完成这项工作吗? 或者在 Java 中有更简单/更好的方法来做到这一点。
You want java.text.DecimalFormat
java.text.NumberFormat is probably what you want.
You want java.text.DecimalFormat.
DecimalFormat df = new DecimalFormat("0.00##"); String result = df.format(34.4959);
Here is a small code snippet that does the job:
double a = 34.51234; NumberFormat df = DecimalFormat.getInstance(); df.setMinimumFractionDigits(2); df.setMaximumFractionDigits(4); df.setRoundingMode(RoundingMode.DOWN); System.out.println(df.format(a));
NumberFormat and DecimalFormat are definitely what you want. Also, note the NumberFormat.setRoundingMode() method. You can use it to control how rounding or truncation is applied during formatting.
NumberFormat.setRoundingMode()
Yes you can do it with String.format:
String.format
String result = String.format("%.2f", 10.0 / 3.0); // result: "3.33" result = String.format("%.3f", 2.5); // result: "2.500"