JavaScript的美国货币格式
问题描述:
下JS功能然而,在镀铬返回时的jsfiddle返回($ 6.48), - $ 6.48JavaScript的美国货币格式
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>
答
您的问题是,你没有使用总可变正确,我改变它,而不是价值。我还移动了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"));
+0
我发现在巨大的代码库中有一个重复函数,它没有添加括号,而是被调用而不是我的。 –
在Chrome中进行测试,它显示'$ 6.48':https://jsfiddle.net/84g4wkob/。当您使用'Math.abs'时,我不明白在任何浏览器中如何看到负面结果。 –
您可以随时使用[全球化](https://github.com/jquery/globalize)。如果你使用jQuery,这是一个简单的解决方案。它是否值得仅用于货币是另一个问题。 – Bakudan
我发现在巨大的代码库中有一个重复的函数,它没有添加括号,而是被调用而不是我的。 –