如果不在JavaScript中使用parseFloat,则无法正确添加两个数字
我遇到了这个问题。 它使用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
| | | | |
$.val()
返回一个字符串值。
因此,在您的第一个示例中,您将两个返回的字符串转换为数字,并且计算正常。
如果你使用parseFloat($('#txt1').val() + $('#txt2').val())
+
不能作为算术运算符,而是作为字符串连接。 因此,您连接两个字符串并在之后转换它们,这会产生错误的结果。
使用-
的示例将起作用,因为没有使用字符串操作-
因此所有值在应用操作之前被隐式转换为数字。
$('#txt1').val() + $('#txt2').val()
它给出了String值
你不能在字符串上使用 – ,*,/运算符
parseFloat($('#txt1').val()), parseFloat($('#txt2').val())
返回数字而非字符串