0
$(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);
4

2 回答 2

2

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

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

// ...
var value = parseInt(textFieldValue, 10 );
var result = (value + 273.15).toFixed(1);
displayResult(selectFrom,selectTo,result);
// ...
于 2013-08-01T11:54:08.670 回答
0

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

  1. result= (value*1) + 273.15
  2. result= parseInt(value) + 273.15
于 2013-08-01T11:56:41.227 回答