为什么parseInt()不起作用?

时间:2018-06-05 04:47:49

标签: javascript

我正在用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

4 个答案:

答案 0 :(得分:2)

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

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

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

var calculatedAnswer = parsed1 + parsed2;

答案 1 :(得分:1)

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

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



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

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

console.log((+value1) + (+value2))




答案 2 :(得分:0)



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

var calculatedAnswer = parseInt(value1) + parseInt(value2);
alert(calculatedAnswer)




您需要使用parseInt输出

答案 3 :(得分:0)

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

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

value1 = parseInt(value1);
value2 = parseInt(value2);

var calculatedAnswer = value1 + value2;