2013-08-01 105 views
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,但我想補充1 273.15怎樣才能得到呢?JavaScript給出錯誤的結果?

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

回答

2

Number.toFixed()的結果是一個字符串。因此,在您的代碼中,+運算符將執行字符串連接,您將得到結果"1.0273.15"

你想要的可能更多沿着這些線。使用parseInt()將您的輸入值轉換爲數字,然後進行計算並最終應用toFixed()以獲得正確的小數位數。

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

變量value被視爲一個字符串。可能是因爲.toFixed(1)修改。但是,你可以再次通過執行以下

  1. result= (value*1) + 273.15
  2. result= parseInt(value) + 273.15
一個強制其爲數字處理賭注