我使用此函数检查值是否为数字:
function isNumber(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
我的程序需要使用德语值。我们使用逗号作为小数分隔符而不是点,因此该函数不起作用。
我试着这样做:
n.replace(",",".")
但它似乎也不起作用。我尝试使用的确切功能是:
function isNumber(n) {
n=n.replace(",",".");
return !isNaN(parseFloat(n)) && isFinite(n);
}
如果我的陈述不够明确,则该数字看起来像9.000,28
而不是通常的9,000.28
。
答案 0 :(得分:20)
您需要先在千位分隔符中替换(删除)点,然后处理小数:
function isNumber(n) {
'use strict';
n = n.replace(/\./g, '').replace(',', '.');
return !isNaN(parseFloat(n)) && isFinite(n);
}
答案 1 :(得分:15)
var number = parseFloat(obj.value.replace(",",""));
你可能也想要这样做......
obj.value = number.toLocaleString('en-US', {minimumFractionDigits: 2});
答案 2 :(得分:1)
我相信做到这一点的最佳方法就是简单地使用toLocaleString方法。 例如,我住在巴西,在这里我们用逗号作为小数点分隔符。然后我可以这样做:
var number = 10.01;
console.log(number)
// log: 10.01
console.log(number.toLocaleString("pt-BR"));
// log: 10,01