请检查此代码:
function CalCPM()
{
var nv = document.getElementById('txtviews').value;
var nc = document.getElementById('txtcost').value;
var result =parseFloat(nc) / parseFloat(nv)/1000;
if(!isNaN(result))
{
document.getElementById('cpm').value = result.toFixed(4);
}
}
当你在数字中加入逗号时,它可以正常工作,意味着如果你输入txtviews 1000000并且在txtcost 3000中你得到的正确结果是3.000
但是,如果您在任何数字中使用逗号,则问题就会出现,例如
如果你输入txtviews 1,000,000和txtcost 3,000
然后结果将是0.000003
或者如果您首先为txtcost设置值 然后结果将是3000.0000
这两种方式都不是正确的值,任何想法是什么问题??
答案 0 :(得分:0)
我相信你不得不把它们剥掉,然后把它们重新加入(逗号,就是这样)..
function CalCPM()
{
var nv = document.getElementById('txtviews').value.replace(',','');
var nc = document.getElementById('txtcost').value.replace(',','');
var result =parseFloat(nc) / parseFloat(nv)/1000;
if(!isNaN(result))
{
document.getElementById('cpm').value = Number(result).toLocaleString('en');
}
}
答案 1 :(得分:0)
这可以通过使用reg-ex简单解决:
function CalCPM()
{
var nv = (document.getElementById('txtviews').value).replace(/,/g,'');
var nc = (document.getElementById('txtcost').value).replace(/,/g,'');
var result =parseFloat(nc) / parseFloat(nv)/1000;
if(!isNaN(result))
{
document.getElementById('cpm').value = Number(result).toFixed(4);
}
}