gpt4 book ai didi

javascript - 如果不在 JavaScript 中使用 parseFloat,则无法正确添加两个数字

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:03:11 26 4
gpt4 key购买 nike

我遇到了这个问题。它使用 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>

最佳答案

$.val() 返回一个字符串值。

因此,在您的第一个示例中,您将两个返回的字符串都转换为数字,并且计算没问题。

如果你使用 parseFloat($('#txt1').val() + $('#txt2').val()) + 不会作为算术运算符工作,但作为字符串连接。所以你连接两个字符串并在之后转换它们,这会产生错误的结果。

使用 - 的示例将起作用,因为没有使用 - 的字符串操作,因此所有值都在 应用操作。

关于javascript - 如果不在 JavaScript 中使用 parseFloat,则无法正确添加两个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16117985/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com