Java 使用十进制分隔符格式化数字/字符串
我正在尝试使用Java 使用十进制分隔符格式化数字/字符串,java,string-formatting,number-formatting,decimalformat,Java,String Formatting,Number Formatting,Decimalformat,我正在尝试使用十进制格式格式化数字。但我想让它格式化一个数字,就像 input: 1234. --> should be formatted to: 1,234. 但根据十进制格式的规则,我会得到1234.0或1234.00 我要怎么做才能完成这件事 如果不想显示任何小数位,请不要格式化浮点值:)如果使用biginger、int或long,则可以: import java.math.*; import java.text.*; public class Test { pr
十进制格式
格式化数字。但我想让它格式化一个数字,就像
input: 1234. --> should be formatted to: 1,234.
但根据十进制格式的规则,我会得到1234.0
或1234.00
我要怎么做才能完成这件事 如果不想显示任何小数位,请不要格式化浮点值:)如果使用
biginger
、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 f = new DecimalFormat("#,###");
f.format(whatever)...
试试这个:
DecimalFormat df = new DecimalFormat("#,###.", DecimalFormatSymbols.getInstance(Locale.ENGLISH));
System.out.println(df.format(1234));
导致输出错误的规则是什么?您能否显示您如何使用
DecimalFormat
的示例代码?问题是,我想显示该点。它就像一个输入,您可以添加单个值。所以,我想显示点。@user2118495:显示小数分隔符后没有小数位数是很不寻常的。我不记得在用户界面或人类写作中见过这种情况。如果我在几个计算器上按点,我会得到后面没有数字的分隔符。这是我想要的方式。就像普通的计算器输入一样。@user2118495:但这是在进行输入时进行的,而不是格式化输出。是的。我在接受输入时格式化。在读取每个数字后,我格式化。我添加了一个答案。我无法使用分隔符获得输出。喜欢输入:1。产量:1。第一次只有1或1.0没有将其作为一项要求。更新了答案来处理这个问题。
DecimalFormat df = new DecimalFormat("#,###.", DecimalFormatSymbols.getInstance(Locale.ENGLISH));
System.out.println(df.format(1234));