3

ユーザーが入力した数値を数桁まで正確にする必要があります。ユーザーがランダムな値を入力し、3桁までの精度が必要な場合は、小数点以下3桁まで桁を四捨五入する必要があります。だから私はこのようなことをしました

 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("",#.##); を試しました。しかし、静的な値を取ります。そして、私の精度は変化し続けています。

どんな助けでも大歓迎です。

4

3 に答える 3

4

小数の正確な形式を返すメソッドを作成できます。次に例を示します。

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());
}
于 2012-08-10T05:30:48.663 に答える
4

実際にこれを行うために NumberFormat を使用できます

double amount = 15;
NumberFormat formatter = new DecimalFormat("#0.000");
System.out.println("The Decimal Value is:"+formatter.format(amount));
于 2012-08-10T05:25:25.987 に答える