我在执行简单加法并将值保存在变量中时遇到问题。
基本上我有以下代码:
var accsen;
var lowsev = parseInt(accsen);
var hisev = parseInt(accsen) + parseInt(0.65);
console.log('Lowsev: ' + lowsev);
console.log('Hisev: ' + hisev + ' Type: ' + typeof(hisev));
console.log('Accsen: ' + accsen);
正在从数据库中为变量accsen提供值。 Lowsev被赋予与accsen相同的值,而hisev被赋予accsen + 0.65的值。
但是我遇到的问题是lowsev和hisev都保持为0。在进行console.log时,我得到了这些值:
Lowsev:0
Hisev:0类型:undefined
埃森:0.75
谁能告诉我我在做错什么呢?我使用正确的运算符吗?
最佳答案
“为Lowsev分配了与accsen相同的值”并非如此,您将其舍入为整数。
但是parseInt()
不能正确取整。 0.75表示为0,因此可以正常工作。假设您实际上想舍入这些值,请尝试
var accsen;
var lowsev = Math.round(accsen);
var hisev = Math.round(accsen) + Math.round(0.65);
编辑给出的响应
您的JS将accsen视为字符串,您需要转换为数字
var accsen = '0.75'; // as other people have noted this val in your code is missing.
var lowsev = parseFloat(accsen);
var hisev = parseFloat(accsen) + 0.65;