其余的所有转换工作正常,但是只有开尔文单位的2个不能正常工作,它只是计算结果,而不是计算数字,而是在值之前添加了条目。
示例:。 32ºC到K为305.15
问题:。显示32273.15
从开尔文到摄氏同样如此。
function conv_temp() {
//Get values of entries from the form
var n = document.getElementById("temp").value; // Text field
var u1 = document.getElementById("t1").value; // First temperature unit choice
var u2 = document.getElementById("t2").value; // Second temperature unit choice
var ctk = (n + 273.15); // Celsius to Kelvin
var ktc = (n - 273.15); // Kelvin to Celsius
//Move decimals accordingly to temperature unit
var resctk = ctk.toFixed(2);
var resktc = ktc.toFixed(1);
if (u1 == "2" && u2 == "3") { // ºC to K
document.getElementById("res_temp").innerHTML = resctk;
document.getElementById("unit").innerHTML = " K";
document.getElementById("result").style.display = "block";
document.getElementById("result").style.visibility = "visible";
return true;
}
else if (u1 == "3" && u2 == "2") { // K to ºC
document.getElementById("res_temp").innerHTML = resktc;
document.getElementById("unit").innerHTML = " ºC";
document.getElementById("result").style.display = "block";
document.getElementById("result").style.visibility = "visible";
return true;
}
else {return true;}
}
我该怎么办?试图将变量以及变量也更改为确切的数字(273.15),但都无效
答案 0 :(得分:4)
首先,您必须先将温度解析为数字,然后才能对其进行数学运算
var n = parseFloat(document.getElementById("temp").value);