-1

我正在尝试使用DecimalFormat. 但我希望它格式化一个数字,就像

input: 1234.  -->  should be formatted to: 1,234.

但我得到1,234.01,234.00取决于我的十进制格式规则我必须做什么才能完成这项工作?

4

4 回答 4

5

应该帮助您的方法是setMinimumFractionDigitssetMaximumFractionDigits

format.setMinimumFractionDigits(0);

猜测一下,可能就是您要寻找的东西。


要确保始终显示小数分隔符,请使用:DecimalFormat.setDecimalSeparatorAlwaysShown(true)

于 2013-02-28T07:02:53.647 回答
2

您可以通过使用格式化数字,无论它是否是小数

DecimalFormat f = new DecimalFormat("#,###"); 
f.format(whatever)...
于 2013-02-28T07:06:15.410 回答
1

如果您不想显示任何小数位,请不要格式化浮点值:) 如果您使用BigInteger,intlong, 应该没问题:

import java.math.*;
import java.text.*;

public class Test {

    private static final char p = 'p';

    public static void main(String[] args) {
        NumberFormat format = new DecimalFormat();
        BigInteger value = BigInteger.valueOf(1234);
        System.out.println(format.format(value));
        System.out.println(format.format(1234));
        System.out.println(format.format(1234L));
    }
}
于 2013-02-28T07:02:08.610 回答
0

试试这个:

DecimalFormat df = new DecimalFormat("#,###.", DecimalFormatSymbols.getInstance(Locale.ENGLISH));
System.out.println(df.format(1234));
于 2013-02-28T07:08:32.363 回答