使用%1 $,2f格式化数字

时间:2013-05-21 10:14:01

标签: java

我正在使用

public static String displayNumberAmount(Number amount, Locale locale) {
    String.format(locale, "%1$,.2f", amount);
}

以区域设置和2位小数格式化我的数字。

如果我有号码1032,它将被正确格式化为1 032,00 但如果我的数字低于1000,例如890,它将被格式化为890(我总是需要这2位小数)

在对象中,这些值存储为BigDecimals,如

BigDecimal val = object.getAmount();
String formattedVal = displayNumberAmount(val, myLocale);
你能告诉我为什么吗?

2 个答案:

答案 0 :(得分:0)

您的代码适用于我。这是我的考验:

import java.math.BigDecimal;
import java.util.Locale;

public class Tester{
    public static void main(String args[]){
        System.out.println("999 " + displayNumberAmount(new BigDecimal(999.99), Locale.FRENCH));
        System.out.println("1000 " + displayNumberAmount(new BigDecimal(1000.99), Locale.FRENCH));
        System.out.println("1001 " + displayNumberAmount(new BigDecimal(1001.99), Locale.FRENCH));
    }

    public static String displayNumberAmount(Number amount, Locale locale) {
        return String.format(locale, "%1$,.2f", amount);
    }

}

答案 1 :(得分:-1)

public static String displayNumberAmount(Number amount, Locale locale) {
    return String.format(locale, "%1$,.2f", amount);
}

'return'语句丢失。