我想格式化一個數字與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