添加导致JavaScript出错?

时间:2013-08-01 11:51:18

标签: javascript jquery jquery-mobile cordova

$(document).on('pageshow','#temperatureContents',function(){
    $(document).off('click','#convertbtnTemp').on('click','#convertbtnTemp',function(){
        textFieldValue = $('#numberField').val();
    });
});

if(selectFrom == "celcius" && selectTo == "kelvin"){ 
    celToKel(selectFrom,selectTo,textFieldValue);
}

function celToKel(selectFrom,selectTo,textFieldValue){  
    var value = Number(textFieldValue).toFixed(1);
    var result = (value + 273.15);
    displayResult(selectFrom,selectTo,result);
}

function displayResult(selectFrom,selectTo,result){
    $('#resultDiv').show();
    $('#resultDisplay').empty().append("the  Result  of " +  selectFrom + "   to    " + selectTo + "   is:   " +   result);
}

问题在于这两行它给了我 1 + 273.15 = 1.0273.15 但是我想在273.15中加1,我怎么能得到这个呢?

 var value = Number(textFieldValue).toFixed(1);
 var result = (value + 273.15);

2 个答案:

答案 0 :(得分:2)

Number.toFixed()的结果是一个字符串。因此,在您的代码中,+运算符将执行字符串连接,并获得结果"1.0273.15"

你想要的可能更多这些方面。使用parseInt()将输入值转换为数字,然后进行计算,最后应用toFixed()以获得正确的小数位数。

// ...
var value = parseInt(textFieldValue, 10 );
var result = (value + 273.15).toFixed(1);
displayResult(selectFrom,selectTo,result);
// ...

答案 1 :(得分:0)

变量value被视为字符串。可能是因为.toFixed(1)修改。但是,您可以通过执行以下操作之一强制将其作为一个数字进行下注

  1. result= (value*1) + 273.15
  2. result= parseInt(value) + 273.15