在Javascript中格式化为货币

时间:2011-05-25 12:44:08

标签: javascript

我有一个变量,它由另外两个变量的乘法组成

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

是否可能,如果可能,或者调用的函数是什么,将其格式化为货币?我一直在谷歌搜索我只能找不到功能,我见过的唯一方法是真的,真的很长的啰嗦

5 个答案:

答案 0 :(得分:9)

从这里采取: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);
}

答案 1 :(得分:7)

如果您正在寻找一种快速功能,可以将您的号码(例如:1234.5678)格式化为:$ 1234.57,您可以使用.toFixed(..)方法:

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

toFixed函数采用整数值作为参数,表示尾随小数的数量。有关此方法的更多信息,请访问http://www.w3schools.com/jsref/jsref_tofixed.asp

否则,如果您希望输出格式为:$ 1,234.57,则需要为此实现自己的功能。以下是两个实施链接:

答案 2 :(得分:3)

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

答案 3 :(得分:1)

可能不完美,但适合我。

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

答案 4 :(得分:0)

在Javascript中没有用于格式化货币的内置函数。

您可以在线找到许多可以帮助您编写自己的脚本,但是,这里有一个:

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

Google“javascript currency”。