这些代码正在运行;正确添加。问题是,如果我想添加99000000.00 + 199000000.00,它显示298000000.00。
如何制作显示298,000,000.00的99,000,000.00 + 199,000,000.00?
每次用逗号计算数字时,都会导致NAN /无效。但是,如果我用逗号计算数字,它就会计算得很好。如何在没有NAN / Invalid结果的情况下允许用户输入的文本区域/数字中的逗号?
请参阅下面使用的代码:
HTML CODE:
<table width="460" border="1">
<tr>
<tr>
<td>SOUTH CLUSTER (391)</td>
<td><input name="scc" type="text" size="25" id="scc" value="0.00"/></div></td>
</tr>
<tr>
<td>CENTRAL CLUSTER(387)</td>
<td><input name="ccc" type="text" size="25" id="ccc" value="0.00" /></div></td>
</tr>
<tr>
<td>NORTH CLUSTER(393)</td>
<td><input name="ncc" type="text" size="25" id="ncc" value="0.00" /></div></td>
</tr>
<tr>
<td >C HUB(390)</td>
<td><input name="vch" type="text" size="25" id="vch" value="0.00"/></div></td>
</tr>
<tr>
<td>CH HUB(397)</td>
<td><input name="mch" type="text" size="25" id="mch" value="0.00"/></div></td>
</tr>
<tr>
<td>NLC HUB(399)</td>
<td><input name="nlch" type="text" size="25" id="nlch" value="0.00"/></div></td>
</tr>
<tr>
<td>SLC HUB(396)</td>
<td><input name="slch" type="text" size="25" id="slch" value="0.00"/></div></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
<td><div class="style66" align="center"><input type="button" value="ADD" onclick="civ()"></center></td>
</tr>
JAVASCRIPT CODES:
function civ(){
civ1=Number(document.addition.scc.value);
civ2=Number(document.addition.ccc.value);
civ3=Number(document.addition.ncc.value);
civ4=Number(document.addition.vch.value);
civ5=Number(document.addition.mch.value);
civ6=Number(document.addition.nlch.value);
civ7=Number(document.addition.slch.value);
valNum1=Math.floor((civ1+civ2+civ3+civ4+civ5+civ6+civ7)*100)/100;
document.addition.civ123.value=valNum1;
}
答案 0 :(得分:1)
使用replace来清除逗号:
number_with_commas.replace(/,/g, '');
或者清除不是数字或小数点的所有内容:
number_with_random_noise.replace(/[^0-9.]/g, '');
答案 1 :(得分:1)
当您有逗号时,它不是数字(NaN)。
quickfix是添加一个函数将它们转换为数字
function NumWithComma(num){
return parseInt(num.replace(",",""));
}
然后做
civ1 = NumWithComma(document.addition.scc.value);
这是一个quickfix,在我看来,你发布的内容有很多不妥之处...希望这会有所帮助
答案 2 :(得分:0)
使用正则表达式replace删除任何逗号,使用parseInt()将结果字符串更改为数字。
parseInt(yourVariable.replace(/\,/g,''),10)
请注意,结果可能仍会失败,因为显然您的用户可以在字段中键入任何旧的废话。阅读parseInt()上的doco。