我正在尝试添加多个美元金额的字符串。我从parseFloat
中获得了NaN进行转换,但是我删除了美元符号和任何逗号。有什么建议吗?
我尝试仅添加不带parseFloat
的字符串,但是我只是得到一个串联的字符串。
function calculateTotalCost()
{
var amt;
var subTotal;
for(i=1; i < 9; i++)
{
amt = document.getElementById("cphMain_gridPC").rows[i].cells[1].innerHTML;
var amtNum = amt.replace('$', '');
var amtF = amtNum.replace(',', '');
if(isNaN(amtF))
{
subTotal += 0.00;
}
else
{
subTotal += parseFloat(amtF);
alert(subTotal);
}
}
alert(subTotal);
}
我希望将subTotal或每个tds值加在一起。
答案 0 :(得分:2)
使用类似的replace方法仅替换字符串中该模式的 first 实例。可能发生的情况是,“ 3,000,000”之类的数字被更改为“ 3000,000”,这就是为什么您仍然得到isNaN(amtF)=== true的原因。
尝试一下:
var amtF = amtNum.replace(/,/g, '');
用斜杠代替引号表示您正在搜索正则表达式模式,该模式还允许您使用 g 标志。这代表 global ,表示该模式的所有实例将被替换。
编辑: 这个问题很可能是您忘记了将小计初始化为零。更改此:
var subTotal;
对此:
var subTotal = 0;