-2

JavaScript:

console.log('adding' + addThis + '+' + p1 +'=' + (addThis + p1));    

浏览器中的控制台返回:adding3+0=30

我正在调试一个插入两个数字的循环。它工作正常,直到addThis(需要添加到原始数字的数量)正好是 3 并且p1(原始值)为 0。每次差值(addThis)没有小数时,都会发生错误的计算。所以同样的问题:

adding6+0=60 ...or at..
adding9+0=90

...之间的所有情况都可以正常工作(例如控制台返回adding3.5999999999999996+0=3.59999999999999960:)

剂量它“忘记”重点?是否将这些值视为字符串?

我不能分享整个代码,但问题必须出在这个简单的计算上,对吧?

非常感谢您的想法和知识!;)

4

2 回答 2

0

如果要将字符串转换为整数,可以使用parseInt 函数

addThis = '3'
p1 = '0'
console.log('adding' + addThis + '+' + p1 +'=' + (parseInt(addThis) + parseInt(p1)))

于 2017-01-16T00:39:14.833 回答
0

3+0=30。似乎它必须是字符串(至少任何变量都是字符串)。您可以重新访问这些变量值被初始化/更改的行。否则你可以像下面这样使用:

addThis=Number(addThis); p1=Number(p1);   
console.log('adding' + addThis + '+' + p1 +'=' + (addThis + p1));
于 2017-01-16T00:48:56.950 回答