我想格式化一个数字与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)
我无法用分隔符获得输出。像输入:1.和输出:1.只有1或1.0 – user2118495 2013-02-28 07:19:09
第一次没有把它作为要求。更新了处理该问题的答案。 – femtoRgon 2013-02-28 10:13:22
如果不想显示任何小数,不要格式化浮点值:)如果你使用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));
}
}
事情是,我想展示点。它就像一个输入并添加单个值。所以,我想要点显示。 – user2118495 2013-02-28 07:04:55
@ user2118495:在它后面显示一个没有小数位的小数点分隔符*是非常不寻常的。我不记得在用户界面或人类写作中看到过这种情况。我不会惊讶地发现它不被支持。 – 2013-02-28 07:07:28
如果我按几个计算器上的点,我会得到没有任何数字的分隔符。这是我想要的方式。就像通常的计算器输入。 – user2118495 2013-02-28 07:11:56
您可以通过使用
DecimalFormat f = new DecimalFormat("#,###");
f.format(whatever)...
尝试这种格式的数字,无论它是一个小数与否:
DecimalFormat df = new DecimalFormat("#,###.", DecimalFormatSymbols.getInstance(Locale.ENGLISH));
System.out.println(df.format(1234));
你的规则是什么导致错误的输出? – 2013-02-28 07:02:55
你可以展示你如何使用'DecimalFormat'的示例代码吗? – Krease 2013-02-28 07:03:28