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 回答