3

ユーザーからの入力を取得します。この形式で印刷したい:

0#.##

また

##.##

Javaでこれを行うにはどうすればよいですか?

今日私は使用しています:

padWithZeroRightToPeriod(product.formats[index],Float.parseFloat(currentPrice));

private String padWithZeroRightToPeriod(String serverFormat, float unformattedNumber) {
  int nDigits = getNumberOfDigitsAfterPeriod(serverFormat);
  String floatingFormat = "%4." + nDigits + "f";
  String formattedPrice = String.format(floatingFormat, unformattedNumber);

  return formattedPrice
}

しかし、それは に変換08.56され8.56ます。

4

2 に答える 2

1

小数点以下 2 桁で、少なくとも 2 桁の整数で、先頭にゼロがある場合:

String floatingFormat = "%05.2f";
  • 0、文字列をスペースではなくゼロで埋めます。
  • 5、整数部分、小数部分、および小数点部分を含む最小合計フィールド幅です。
  • 2、印刷される正確な小数点以下の桁数です。
于 2013-11-05T09:11:04.893 に答える
0

DecimalFormatter を使用してみてください

        float f= 3.44f;                 
        DecimalFormat df = new DecimalFormat("00.##");    
        System.out.println("formatted  value::"+ df.format(f));

================================================== ============================ 関数を更新しました

private static String padWithZeroRightToPeriod(String serverFormat, float unformattedNumber) {
        DecimalFormat df = new DecimalFormat(serverFormat);    
        return df.format(unformattedNumber);
    }

呼び出し機能

padWithZeroRightToPeriod("00.##",3.44f)
于 2013-11-05T09:10:40.967 に答える