【发布时间】:2013-04-20 07:43:11
【问题描述】:
我遇到了这个问题。它使用 parseFloat 或 parseInt 添加数字。 如果 textbox1 值为 4,textbox2 值为 2,那么我得到的输出为(见脚本)
我的疑问是为什么单独加法
parseFloat($('#txt1').val()) + parseFloat($('#txt2').val())
给出正确的值但是
parseFloat($('#txt1').val() + $('#txt2').val())
没有给出正确的值,而
-
parseFloat($('#txt1').val() - $('#txt2').val()), -
parseFloat($('#txt1').val() / $('#txt2').val()), parseFloat($('#txt1').val() * $('#txt2').val())
给出正确的值。 它很简单,但我找不到解决方案。
=====jQuery
function Calculate() { //--> Output
$('#lbl1').html(parseFloat($('#txt1').val() + $('#txt2').val())); //--> 42
$('#lbl2').html(parseFloat($('#txt1').val()) + parseFloat($('#txt2').val())); //--> 6
$('#lbl3').html(parseFloat(4 + 2)); //--> 6
$('#lbl4').html(parseFloat($('#txt1').val() - $('#txt2').val())); //--> 2
$('#lbl5').html(parseFloat($('#txt1').val() * $('#txt2').val())); //--> 8
$('#lbl6').html(parseFloat($('#txt1').val() / $('#txt2').val())); //--> 2
}
=====HTML
<table>
<tr>
<td>
<input type="text" id="txt1" />
</td>
<td>
<input type="text" id="txt2" />
</td>
</tr>
<tr>
<td>
<input type="button" value="Calculate" onclick="Calculate()" />
</td>
<td>
<label id="lbl1">
</label>
|
<label id="lbl2">
</label>
|
<label id="lbl3">
</label>
|
<label id="lbl4">
</label>
|
<label id="lbl5">
</label>
|
<label id="lbl6">
</label>
</td>
</tr>
</table>
【问题讨论】:
-
这是因为 + 运算符也用于字符串,而 - 和 * 运算符则没有。使用像这样的松散类型语言你会得到这种行为。
-
我很惊讶没有人推荐优秀的 jQuery 算术插件。
标签: javascript jquery add