3

我正在尝试以公制确定风寒。我从 BBC 找到了一些很好的信息(它被称为“感觉温度”),但我不太清楚如何将其转换为 C 代码。

这是他们的计算信息:

T(wc) = 13.12 + 0.6215T - 11.37V**0.16 + 0.3965TV**0.16

有了这些笔记

(其中 T(wc) 是基于摄氏温度的风寒指数,T 是以°C 为单位的空气温度,V 是在 10 m(33 英尺,标准风速计高度)处测量的空气速度,以 km/h 为单位。

所以我创建了这个,但我得到的输出有时是负面的

float feelslike = 13.12 + 0.6215 * temperature - 11.37 * windSpeed  * 0.16 + 0.3965 * temperature * windSpeed * 0.16;

也许我错过了什么?我假设当它有“0.6215T”时,它的意思是“0.6215 * T”,但我也不确定如何解释等式中的双“*”。

样本输出:

feelslike 15.126314 temp 19.719999 wind 18.040001
feelslike 15.126314 temp 19.719999 wind 18.040001
feelslike 14.308528 temp 20.070000 wind 20.670000
feelslike 14.308528 temp 20.070000 wind 20.670000
feelslike 12.485908 temp 20.049999 wind 23.930000
feelslike 12.485908 temp 20.049999 wind 23.930000
feelslike 9.340910 temp 19.450001 wind 27.110001
feelslike 9.340910 temp 19.450001 wind 27.110001
feelslike 5.497787 temp 18.330000 wind 28.969999
feelslike 5.497787 temp 18.330000 wind 28.969999
feelslike 2.776235 temp 16.740000 wind 27.400000
feelslike 2.776235 temp 16.740000 wind 27.400000
feelslike 0.058707 temp 14.950000 wind 25.670000
feelslike 0.058707 temp 14.950000 wind 25.670000
feelslike -1.787689 temp 13.130000 wind 23.389999
feelslike -1.787689 temp 13.130000 wind 23.389999
feelslike -1.408279 temp 12.460000 wind 21.650000
feelslike -1.408279 temp 12.460000 wind 21.650000
feelslike -0.960956 temp 11.810000 wind 20.020000
feelslike -0.960956 temp 11.810000 wind 20.020000
feelslike -1.235470 temp 11.550000 wind 19.820000
4

3 回答 3

6
T(wc) = 13.12 + 0.6215T - 11.37V**0.16 + 0.3965TV**0.16

方法:

T(wc) = 13.12 + 0.6215*T - 11.37*pow(V,0.16) + 0.3965*T*pow(V,0.16)

在 C/C++ 中

于 2013-04-12T18:00:03.387 回答
5

**通常意味着“提升到权力”。您可以pow在 math.h中使用。例如:

pow(windSpeed, 0.16)

您的完整计算应该是:

float feelslike = 13.12 + 0.6215 * temperature - 
                  11.37 * pow(windSpeed, 0.16) + 
                  0.3965 * temperature * pow(windSpeed, 0.16);

别忘了#include <math.h>

于 2013-04-12T17:59:23.530 回答
0

也许我疯了,但你不能有负数吗?它只是意味着感觉就像它在冰点以下?

于 2013-04-12T17:59:16.100 回答