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