0

我在用

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

以语言环境和 2 位小数格式化我的数字。

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

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

BigDecimal val = object.getAmount();
String formattedVal = displayNumberAmount(val, myLocale);

你能告诉我为什么吗?

4

2 回答 2

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);
    }

}
于 2013-05-21T10:31:05.943 回答
-1
public static String displayNumberAmount(Number amount, Locale locale) {
    return String.format(locale, "%1$,.2f", amount);
}

'return' 语句丢失。

于 2013-05-21T10:41:21.027 回答