如何确保java中数字不超过2的数字

时间:2014-01-03 01:29:38

标签: java format

我有一些数字值,我想确保它们最多可以容纳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

有替代方案吗?

4 个答案:

答案 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