在十进制后添加n个零

时间:2012-08-10 05:17:37

标签: java android

我需要提供用户输入的数字的准确性,直到几位数。就像用户输入一些随机值并给出他想要精确到三位数然后我需要将数字四舍五入到小数点后三位。所以我做了类似的事情

 int index = value.indexOf('.'); 
            if (index >= 0)
            {
                String fractional = value.substring(index);

                if (fractional.length() > decimalPlaces)
                {
                    floatValue = roundOffDecimals(floatValue, decimalPlaces);
                }
            }
            retVal = new Float(floatValue);

但是当用户输入一些值但不输入任何小数值时,我需要将其显示为令人沮丧的值,零作为小数位数。 喜欢15是他的号码,3是他的准确性然后我需要显示数字为15.000

总是在变化时,我无法在小数点后显示零。请帮忙。 我试过DeciamlFormat df = new DecimalFormat(“”,#。##);但需要静态价值。而且我的准确性在不断变化。

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:3)

您可以创建一个返回小数精确格式的方法。这是一个例子:

public String formatNumber(int decimals, double number) {
    StringBuilder sb = new StringBuilder(decimals + 2);
    sb.append("#.");
    for(int i = 0; i < decimals; i++) {
        sb.append("0");
    }
    return new DecimalFormat(sb.toString()).format(number);
}

如果您不需要经常更改decimals值,那么您可以将方法更改为:

public DecimalFormat getDecimalFormat(int decimals) {
    StringBuilder sb = new StringBuilder(decimals + 2);
    sb.append("#.");
    for(int i = 0; i < decimals; i++) {
        sb.append("0");
    }
    return new DecimalFormat(sb.toString());
}

答案 1 :(得分:2)

您确实可以使用NumberFormat来执行此操作

double amount = 15;
NumberFormat formatter = new DecimalFormat("#0.000");
System.out.println("The Decimal Value is:"+formatter.format(amount));

答案 2 :(得分:1)

您可以使用字符串格式:

两倍面积= 6

String ar = String.format(“%。3f”,area); ar = 6.000