我有一些数字值,我想确保它们最多可以容纳2位数。
例如:
11.1233 --> 11.12
11.1 --> 11.1
123 --> 123
我想过使用
String.format("%.2f",11.1233)
这适用于超过2位的数字,但它会向另一个添加额外的0
,例如,它会导致以下结果:
11.1 --> 11.10
123 --> 123.00
虽然我不需要额外的0
。
有替代方案吗?
答案 0 :(得分:5)
您可以使用DecimalFormat
来取消无效数字
DecimalFormat format = new DecimalFormat("0.##");
format.setRoundingMode(RoundingMode.FLOOR);
System.out.println(format.format(11.1233));
答案 1 :(得分:1)
你可以这样做......
Double num = 11.111;
Double d = Math.Floor(num * 100) / 100
取决于您是否要存储其他数字。
答案 2 :(得分:1)
试试这个:
NumberFormat nf = NumberFormat.getInstance();
double a = 11.1233;
double b = 11.1;
double c = 123;
System.out.println(nf.format(Double.parseDouble(String.format("%.2f",a))));
System.out.println(nf.format(Double.parseDouble(String.format("%.2f",b))));
System.out.println(nf.format(Double.parseDouble(String.format("%.2f",c))));
答案 3 :(得分:0)
您肯定想使用DecimalFormat
。
您可以添加这样的功能,以简化操作。
public void decFormat(String format, double num) {
DecimalFormat formatter = new DecimalFormat(format);
formatter.setRoundingMode(RoundingMode.FLOOR);
System.out.println(formatter.format(num));
}
decFormat("#.##", 11.1233); // Outputs: 11.12
decFormat("#.##", 11.1); // Outputs: 11.1
decFormat("#.##", 11); // Outputs: 11