[英]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.