小编Rya*_*anP的帖子

为什么不解析值0,却解析其他数字?

我正在为Celcius,Kelvin,Farenheit设计温度转换器,并一直停留在这个小问题上。我使用事件监听器来跟踪和解析我的输入,并且每当传入任何数字时,转换都将包括0。我有3个输入字段和3个占位符文本,因此如果我想转换摄氏温度,它们将转换为开尔文和法伦海特。但是,当我退格并将输入留空时,其他两个温度将返回NaN,据我了解,因为这些字段现在没有值。

因此,现在我想解决这个问题,将输入保留为空白,并将占位符文本重置为原始文本,而不是显示NaN。我尝试过if语句来捕获此特定问题,并且效果很好。现在,我可以在不同温度之间转换数字,甚至退格也可以重置占位符文本。一切正常,但数字为0。只要输入0,它就不会被解析并且什么也没有发生。

const celciusInput = document.querySelector("#celcius > input");
const fahrenheitInput = document.querySelector("#fahrenheit > input");
const kelvinInput = document.querySelector("#kelvin > input");

function celciusConverter() {
  const cTemp = parseFloat(celciusInput.value) || "";
  const fTemp = cTemp * (9 / 5) + 32;
  const kTemp = cTemp + 273.15;

  //condition if there is an empty string in the input, placeholder values would reset instead of returning NaN.
  if (cTemp == "") {
    fahrenheitInput.value = "";
    kelvinInput.value = "";
  } else {
    fahrenheitInput.value = Math.round(fTemp); …
Run Code Online (Sandbox Code Playgroud)

javascript

2
推荐指数
1
解决办法
64
查看次数

标签 统计

javascript ×1