JavaScript问题,摄氏到开尔文不起作用

时间:2019-05-05 13:21:16

标签: javascript

其余的所有转换工作正常,但是只有开尔文单位的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),但都无效

1 个答案:

答案 0 :(得分:4)

首先,您必须先将温度解析为数字,然后才能对其进行数学运算

var n = parseFloat(document.getElementById("temp").value);