使用小数分隔符格式化数字/字符串

时间:2013-02-28 06:59:21

标签: java string-formatting number-formatting decimalformat

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

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

但我得到1,234.01,234.00取决于我的十进制格式规则 为了完成这项工作,我该怎么办?

4 个答案:

答案 0 :(得分:5)

应该对您有所帮助的方法是setMinimumFractionDigitssetMaximumFractionDigits

format.setMinimumFractionDigits(0);

猜测,可能就是你要找的东西。


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

答案 1 :(得分:2)

您可以使用

格式化数字,无论是否为小数
DecimalFormat f = new DecimalFormat("#,###"); 
f.format(whatever)...

答案 2 :(得分:1)

如果您不想显示任何小数位,请不要格式化浮点值:)如果您使用BigIntegerintlong,它应该是细:

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

答案 3 :(得分:0)

试试这个:

DecimalFormat df = new DecimalFormat("#,###.", DecimalFormatSymbols.getInstance(Locale.ENGLISH));
System.out.println(df.format(1234));