java 脚本:3 + 0 = 30
java script: 3 + 0 = 30
JavaScript:
console.log('adding' + addThis + '+' + p1 +'=' + (addThis + p1));
浏览器中的控制台 returns:adding3+0=30
我正在调试一个内插两个数字的循环。它工作正常,直到 addThis
(需要添加到原始数字的数量)恰好为 3 且 p1
(原始值)为 0。
每次差值 (addThis
) 没有小数时都会发生错误计算。
同样的问题在:
adding6+0=60 ...or at..
adding9+0=90
...介于两者之间的所有情况都可以正常工作(例如控制台 returns:adding3.5999999999999996+0=3.59999999999999960
)
Dose it 'forget'要点?
它是否将这些值视为字符串?
我不能分享整个代码,但问题一定出在这个简单的计算上吧?
非常感谢您的想法和知识! ;)
如果要将字符串转换为整数,可以使用 parseInt function:
addThis = '3'
p1 = '0'
console.log('adding' + addThis + '+' + p1 +'=' + (parseInt(addThis) + parseInt(p1)))
3+0=30。似乎它必须是字符串(至少任何变量都是字符串)。您可以 re-visit 这些变量值为 initialized/changed 的行。否则你可以像下面这样使用:
addThis=Number(addThis); p1=Number(p1);
console.log('adding' + addThis + '+' + p1 +'=' + (addThis + p1));
JavaScript:
console.log('adding' + addThis + '+' + p1 +'=' + (addThis + p1));
浏览器中的控制台 returns:adding3+0=30
我正在调试一个内插两个数字的循环。它工作正常,直到 addThis
(需要添加到原始数字的数量)恰好为 3 且 p1
(原始值)为 0。
每次差值 (addThis
) 没有小数时都会发生错误计算。
同样的问题在:
adding6+0=60 ...or at..
adding9+0=90
...介于两者之间的所有情况都可以正常工作(例如控制台 returns:adding3.5999999999999996+0=3.59999999999999960
)
Dose it 'forget'要点? 它是否将这些值视为字符串?
我不能分享整个代码,但问题一定出在这个简单的计算上吧?
非常感谢您的想法和知识! ;)
如果要将字符串转换为整数,可以使用 parseInt function:
addThis = '3'
p1 = '0'
console.log('adding' + addThis + '+' + p1 +'=' + (parseInt(addThis) + parseInt(p1)))
3+0=30。似乎它必须是字符串(至少任何变量都是字符串)。您可以 re-visit 这些变量值为 initialized/changed 的行。否则你可以像下面这样使用:
addThis=Number(addThis); p1=Number(p1);
console.log('adding' + addThis + '+' + p1 +'=' + (addThis + p1));