2012-10-12 149 views
2

我有一個討厭的問題...的Javascript貨幣格式

我使用了一個小型的JavaScript使用當前行貨幣格式,如

2990至2.990和129900以129.900:

var wdiscount2 = wdiscount.toFixed(3); 

然而,當我在1000等789它顯示像0.789

一些你有沒有爲我解決這個問題很容易的方法嗎?

回答

1

也許使用Joss Crowcroft的庫,如accounting.js是個不錯的主意?它支持各種格式,我相信很多人都會使用它。

wdiscount2 = accounting.formatMoney(wdiscount) 
+0

試過了,仍然有這個插件 –

+0

您檢查了所有的同樣的問題不同的格式化選項? – James

1
var wdiscount2 = wdiscount > 999 ? wdiscount.toFixed(3) : wdiscount; 
+0

奇怪的是,這給我從728到0.728999999999 –

+0

還有其他想法嗎? –

1

它看起來像問題可能已經回答了,但還有另外一種選擇,這可能是有趣的,即使用正則表達式的。

實施例:

var num = 2990; 
var formattedNumber = num.toString().replace(/(\d)(?=(\d{3})(?!\d))/g, "$1.") 

幾個試驗例(num在左邊,formattedNumber右側):

  • 2990 =>2.990
  • 129900 =>129.900
  • 789 =>789(這個沒有.

我希望這會有所幫助。

0

我已經找到最好的解決方案是使用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