我在执行简单加法并将值保存在变量中时遇到问题。

基本上我有以下代码:

    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;

10-07 21:23