JavaScript美国货币格式

时间:2016-03-15 11:16:15

标签: javascript jquery

JSFiddle返回下面的JS函数($ 6.48),但是当用于chrome返回时 - $ 6.48

function formatCurrency(value) {    
    var neg = false;
    value = parseFloat(value, 10).toFixed(2);
    if (value < 0) {
        neg = true;
        total = Math.abs(value);
    }
    value = value.replace(/(\d)(?=(\d{3})+\.)/g, "$1,").toString();
    return (neg ? '($' + value.replace('-', '') + ')' : '$' + value);
}

alert(formatCurrency("-6.4784"));

我正在尝试使用函数格式化货币,同时在括号中返回负值。

渲染div的代码的简化版本就是这样。

document.getElementById("futureInfo").innerHTML = formatCurrency($(this).find("Variance").text());
<div id="futureInfo"></div>

1 个答案:

答案 0 :(得分:1)

你的问题是你没有正确使用总变量而是将其更改为值。我还移动了toString函数,以便将数字转换为字符串,以便替换可以正常工作。

function formatCurrency(value) {
    var neg = false;
    value = parseFloat(value, 10).toFixed(2);
    if (value < 0) {
    neg = true;
    value = Math.abs(value);
    }

    value = value.toString().replace(/(\d)(?=(\d{3})+\.)/g, "$1,");
    return (neg ? ('($-' + value + ')') : ('$' + value));
}

alert(formatCurrency("-6.4784"));