我正在尝试使用DecimalFormat
. 但我希望它格式化一个数字,就像
input: 1234. --> should be formatted to: 1,234.
但我得到1,234.0
或1,234.00
取决于我的十进制格式规则我必须做什么才能完成这项工作?
我正在尝试使用DecimalFormat
. 但我希望它格式化一个数字,就像
input: 1234. --> should be formatted to: 1,234.
但我得到1,234.0
或1,234.00
取决于我的十进制格式规则我必须做什么才能完成这项工作?
应该帮助您的方法是setMinimumFractionDigits和setMaximumFractionDigits。
format.setMinimumFractionDigits(0);
猜测一下,可能就是您要寻找的东西。
要确保始终显示小数分隔符,请使用:DecimalFormat.setDecimalSeparatorAlwaysShown(true)
您可以通过使用格式化数字,无论它是否是小数
DecimalFormat f = new DecimalFormat("#,###");
f.format(whatever)...
如果您不想显示任何小数位,请不要格式化浮点值:) 如果您使用BigInteger
,int
或long
, 应该没问题:
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));
}
}
试试这个:
DecimalFormat df = new DecimalFormat("#,###.", DecimalFormatSymbols.getInstance(Locale.ENGLISH));
System.out.println(df.format(1234));