如何从天气 api 中提取此数字以将其转换为华氏温度?

Posted

技术标签:

【中文标题】如何从天气 api 中提取此数字以将其转换为华氏温度?【英文标题】:How can I extract this number from a weather api to convert it in Farenheit? 【发布时间】:2021-12-23 12:59:19 【问题描述】:

这是从天气 API(以及其他数据)获取温度数据的函数:

displayWeather: function (data) 
    const  name  = data;
    const  icon, description  = data.weather[0];
    const  temp, humidity  = data.main;
    const  speed  = data.wind;
    document.querySelector(".city").innerText = "El tiempo en " + name;
    document.querySelector(".icon").src =
        "http://openweathermap.org/img/wn/" + icon + ".png";
    document.querySelector(".description").innerText = description;
    document.querySelector(".temp").innerText = Math.trunc(temp) + "°C";
    document.querySelector(".humidity").innerText =
        "Humedad: " + humidity + "% ";
    document.querySelector(".wind").innerText =
        "Velocidad del viento: " + speed + " km/h";

温度是我需要转换为华氏温度的值。脚本已经完成,但我总是得到一个 NaN。我知道那个数字后面有一个“°C”,但即使我删除它以仅提取数字我继续得到 NaN。

【问题讨论】:

你的问题不是很清楚。 temp 中究竟存储了什么值?你想在哪里转换它? 使用parseInt(temp)。它将忽略数字后的任何多余字符。, @Barmar 根据API docs,main.temp 已经是一个数字了 如果您想要华氏温度,您可以在向 API 发出请求时指定units=imperial。见openweathermap.org/current#data @Phil 因为他在这里以摄氏度显示,我怀疑他的转换器稍后运行,并处理innerText,它附加了°C 【参考方案1】:

感谢您的帮助。我终于解决了问题,但找出了错误的部分,我发现我没有使用正确的代码行来提取数据并将其设置在正确的位置。

之前:

 C = document.getElementById("ID").value;

正确的行:

C = document.querySelector(".temp").innerText;

现在这行代码终于获取了温度,我可以将它变成华氏温度:

F = (C * 9) / 5 + 32;

抱歉这个愚蠢的问题。现在我只需要弄清楚如何添加+“°C”

【讨论】:

此代码不会出现在您的问题中的任何位置 @Phil 我知道,对不起,这是脚本中将摄氏度转换为华氏温度的代码,反之亦然,我只是认为问题在于 main.temp 不是数字或其他东西。

以上是关于如何从天气 api 中提取此数字以将其转换为华氏温度?的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 从图片中提取平行四边形区域以将其重新映射为矩形。没有描述

练习2-12 输出华氏-摄氏温度转换表(15 分)

如何从 WebFlux 中的 Mono<List<T>> 中提取内容以将其传递到调用链中

浙大版《Python 程序设计》题目集 第2章-10 输出华氏-摄氏温度转换表

是否可以将 js 字符串转换为日期以将其上传到 SQL 数据库?

如何检查字符串是不是正确以将其转换为 int?