【问题标题】:Adding two numbers becomes concatenating two numbers, but the result is a number value? Javascript [duplicate]两个数字相加变成连接两个数字,但结果是一个数字值? Javascript [重复]
【发布时间】:2015-03-05 01:02:19
【问题描述】:

我需要计算三个输入。我使用 jQuery 中的 .val() 方法来获取输入的值并使用以下方法计算它们:

$("document").ready(function(){
 $("#calculate").click(function(){
   document.getElementById("result").innerHTML="$"+($("#einc").val()+$("#iinc").val()-$("#slint").val());
   $("#result").css("display","inline");
});

前两个输入不相加,它们连接在一起;即 5+5=55。 但是,减法工作正常。因此,如果我的前两个输入是 10 和 10,而我的最后一个输入是 5,它将给我 1010-5=1005。

我的预期答案应该是 10+10-5=5。

我的代码有什么问题?

【问题讨论】:

  • 输入值返回字符串..."10"+"10" 将是"1010"
  • 很确定预期的答案应该是倒数第二行中的 15。

标签: javascript jquery concatenation


【解决方案1】:

因为 .val() 返回字符串,而+ 也充当字符串连接运算符。

您可以使用 parseInt()/parseFloat()/unary operator 将字符串值转换为数字值

$("#result").html("$" + (+$("#einc").val() + (+$("#iinc").val()) - $("#slint").val()));

【讨论】:

  • @Ming Huang 选择这个答案:)
  • parseFloat() 适用于我的项目;使用 parseFloat() 和 Number() 的主要区别是什么?它们都返回十进制数值。
【解决方案2】:

试试这个:

Number($("#your_input_field_id").val());

jQuery val() 返回字符串。

【讨论】:

  • 这行得通!!!神奇的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-18
  • 1970-01-01
  • 2019-10-15
相关资源
最近更新 更多