3

DecimalFormat を使用して数値をフォーマットしたいと考えています。
整数 (および小数) の最大桁数は 2 でなければなりません。
数値が 345561.7301 の場合、望ましい結果は次のようになります: 61.73

これは私のコードです:

double number = 345561.7301;
DecimalFormat formater =              
    (DecimalFormat)DecimalFormat.getInstance(Locale.US);//This locale only    

formater.applyPattern("00.00");

System.out.println(formater.format(number)); 

setMaximumIntegerDigits() メソッドを使用したくありません。

4

2 に答える 2

3

部分文字列だけを使用するのはどうですか?

double number = 345561.7301;
DecimalFormat formater =              
(DecimalFormat)DecimalFormat.getInstance(Locale.US);  //This locale only    
formater.applyPattern("00.00");
//formater.setMaximumIntegerDigits(2); // <- don't want to use this
String tmp = formater.format(number);
System.out.println(tmp.substring(tmp.length() - 5)); 
于 2012-05-01T14:03:07.097 に答える
0

このシナリオでは、パターンを使用するのが最善のオプションではない場合があります。モジュラス除算'%'を使用して、余りの数値/100を取得することをお勧めします。

double number = 345561.7301 % 100;
DecimalFormat formater = (DecimalFormat)DecimalFormat.getInstance(Locale.US);
formater.applyPattern("00.00");

System.out.println(formater.format(number));
于 2012-05-01T13:56:25.890 に答える