小数点后添加 n 个零

And*_*oid 3 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);
Run Code Online (Sandbox Code Playgroud)

但是当用户输入一些值但不输入任何小数值时,我需要将其显示为令人沮丧的值,并用零作为小数位数。比如 15 是他的数字,3 是他的准确度,那么我需要将数字显示为 15.000

当小数点总是变化时,我无法显示小数点后的零。请帮忙。我尝试过 DeciamlFormat df = new DecimalFormat("",#.##); 但采用静态值。而且我的准确度不断变化。

任何帮助将不胜感激。

Lui*_*oza 5

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

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);
}
Run Code Online (Sandbox Code Playgroud)

如果您不需要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());
}
Run Code Online (Sandbox Code Playgroud)