我有一個討厭的問題...的Javascript貨幣格式
我使用了一個小型的JavaScript使用當前行貨幣格式,如
2990至2.990和129900以129.900:
var wdiscount2 = wdiscount.toFixed(3);
然而,當我在1000等789它顯示像0.789
一些你有沒有爲我解決這個問題很容易的方法嗎?
我有一個討厭的問題...的Javascript貨幣格式
我使用了一個小型的JavaScript使用當前行貨幣格式,如
2990至2.990和129900以129.900:
var wdiscount2 = wdiscount.toFixed(3);
然而,當我在1000等789它顯示像0.789
一些你有沒有爲我解決這個問題很容易的方法嗎?
也許使用Joss Crowcroft的庫,如accounting.js是個不錯的主意?它支持各種格式,我相信很多人都會使用它。
wdiscount2 = accounting.formatMoney(wdiscount)
var wdiscount2 = wdiscount > 999 ? wdiscount.toFixed(3) : wdiscount;
奇怪的是,這給我從728到0.728999999999 –
還有其他想法嗎? –
它看起來像問題可能已經回答了,但還有另外一種選擇,這可能是有趣的,即使用正則表達式的。
實施例:
var num = 2990;
var formattedNumber = num.toString().replace(/(\d)(?=(\d{3})(?!\d))/g, "$1.")
幾個試驗例(num
在左邊,formattedNumber
右側):
2990
=>2.990
129900
=>129.900
789
=>789
(這個沒有.
)我希望這會有所幫助。
我已經找到最好的解決方案是使用toLocaleString:
const formatCurrency = (num, locale = 'en-US', currency = 'USD', minimumFractionDigits = 2) => {
if (isNaN(num)) {
return num;
}
return num.toLocaleString(locale, {style: 'currency', currency, minimumFractionDigits});
};
下面是一個例子fiddle
試過了,仍然有這個插件 –
您檢查了所有的同樣的問題不同的格式化選項? – James