簡體   English   中英

格式為 Javascript 中的貨幣

[英]Format as currency in Javascript

我有一個變量,它由另外兩個變量的乘積組成

 var EstimatedTotal =  GetNumeric(ServiceLevel) * GetNumeric(EstimatedCoreHours);

是否有可能,如果可以,或者如何調用 function 以將其格式化為貨幣? 我一直在谷歌搜索,但我找不到 function 而我所看到的唯一方法是真的,真的很啰嗦

取自這里: http://javascript.internet.com/forms/currency-format.html 我已經使用它並且效果很好。

function formatCurrency(num)
{
    num = num.toString().replace(/\$|\,/g, '');
    if (isNaN(num))
    {
        num = "0";
    }

    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num * 100 + 0.50000000001);
    cents = num % 100;
    num = Math.floor(num / 100).toString();

    if (cents < 10)
    {
        cents = "0" + cents;
    }
    for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)
    {
        num = num.substring(0, num.length - (4 * i + 3)) + ',' + num.substring(num.length - (4 * i + 3));
    }

    return (((sign) ? '' : '-') + '$' + num + '.' + cents);
}

如果您正在尋找一個快速的 function 它將您的號碼(例如:1234.5678)格式化為:$1234.57,您可以使用.toFixed(..) 方法:

EstimatedTotal = "$" + EstimatedTotal.toFixed(2);

toFixed function 將 integer 值作為參數,表示尾隨小數的數量。 有關此方法的更多信息,請訪問http://www.w3schools.com/jsref/jsref_tofixed.asp

否則,如果您希望 output 格式為:$1,234.57,您需要為此實現自己的 function。 以下是兩個實現鏈接:

如何使用微軟的 jQuery 全球化插件? https://github.com/nje/jquery-glob

可能並不完美,但對我有用。

if (String.prototype.ToCurrencyFormat == null) 
    String.prototype.ToCurrencyFormat = function() 
    { 
        if (isNaN(this * 1) == false)
            return "$" + (this * 1).toFixed(2); 
    }

Javascript 中沒有用於格式化貨幣的內置函數。

您可以在網上找到許多腳本來幫助您編寫自己的腳本,但是,這里有一個:

http://javascript.internet.com/forms/currency-format.html

谷歌“javascript 貨幣”。

現在有Intl.NumberFormat可以輕松地將貨幣或其他數字格式化為語言環境。

使用您的EstimatedTotal示例和美元,您可以執行以下操作:

const formattedTotal = 
new Intl.NumberFormat('en-US', { 
    style: 'currency', 
    currency: 'USD'
}).format(EstimatedTotal));

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM