【问题标题】:Why is parseInt() not working? [duplicate]为什么 parseInt() 不起作用? [复制]
【发布时间】:2018-06-05 04:47:49
【问题描述】:

我正在使用 JavaScript 构建一个计算器,我即将完成,但我有一个逻辑错误。

我正在尝试将字符串转换为数字,以便进行计算。
例如,我希望将 var value = "10"; 转换为整数。

我尝试了parseInt(value1);,但由于某种原因这不起作用 - 当我进行计算时,它只是加入了字符串。

这是我的尝试(非常更简单的版本):

value1 = "10";
value2 = "5";

parseInt(value1);
parseInt(value2);

var calculatedAnswer = value1 + value2;

以上结果:105
为什么它加入字符串而不是转换和添加它们?

编辑:...我该如何解决这个问题?

编辑:The Completed Calculator - thanks to your answers! :D

【问题讨论】:

  • parseInt 返回一个新值。它不能修改你的变量。
  • "不能修改你的变量" -?我认为这就是 parseInt() 的重点,所以它转换/修改数据类型。 :0
  • 只需添加这个 value1 = parseInt(value1); value2 = parseInt(value2);
  • parseInt 的重点是取一个字符串,return 一个整数,就像x - y 中一样,- 是一个取两个数字和 产生一个数字而不改变输入。这是一个正常的功能。 (在 JavaScript 中没有函数可以更改变量的值——该语言根本没有传递引用。)
  • @demonhunter24 术语parse 没有暗示输出方法,但需要澄清的是,JavaScript 不像其他语言那样具有引用参数。

标签: javascript


【解决方案1】:

您必须将 parseInt 值存储在某处并使用它。喜欢

value1 = "10";
value2 = "5";

var parsed1 = parseInt(value1);
var parsed2 = parseInt(value2);

var calculatedAnswer = parsed1 + parsed2;

【讨论】:

    【解决方案2】:

    因为您没有将解析后的值分配给 value1 和 value2,所以 parseInt(value1) 不会改变。您可以使用以下方式或将 parseInt(value1) 更改为 value1 = parseInt(value1) 也与 value 2 相同;

    您也可以通过在字符串前面添加+来将字符串更改为数字

    value1 = "10";
    value2 = "5";
    
    var calculatedAnswer = parseInt(value1) + parseInt(value2);
    console.log(calculatedAnswer)
    
    console.log((+value1) + (+value2))

    【讨论】:

      【解决方案3】:

      value1 = "10";
      value2 = "5";
      
      var calculatedAnswer = parseInt(value1) + parseInt(value2);
      alert(calculatedAnswer)

      你需要使用 parseInt 输出

      【讨论】:

        【解决方案4】:

        您可以将解析后的值分配回变量:

        var value1 = "10";
        var value2 = "5";
        
        value1 = parseInt(value1);
        value2 = parseInt(value2);
        
        var calculatedAnswer = value1 + value2;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-06-06
          • 2016-01-24
          • 2013-03-05
          • 2012-10-01
          • 2014-07-07
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多