从温度和湿度计算露点的公式

时间:2014-12-04 06:58:10

标签: objective-c iphone

任何人都可以帮助我根据温度计算露点(°C或°F)和相对湿度。我在Google上搜索了很多但没有找到任何合适的公式来计算它。我使用下面的公式,但它给出了华氏温度单位的错误值。

float Temp = [value floatValue];
float Humi = [[data humidity] floatValue];
float Td = Temp - ((100 - Humi)/3.6);
return Td;

我有温度(°C或°F)和湿度,需要帮助公式计算目标C的露点。

2 个答案:

答案 0 :(得分:3)

完美无缺

 
-(float) findDewPointWithHumidity:(float) humi forTemperature:(float) temperature isCelsius: (BOOL) isCelsius isReturnTypeCelcius: (BOOL) isReturnTypeCelcius
{
    float temp;

    if(isCelsius){
        temp = temperature;
    } else {
        temp = (temperature - 32) / 1.8;
    }

    float ans =  (temp - (14.55 + 0.114 * temp) * (1 - (0.01 * humi)) - pow(((2.5 + 0.007 * temp) * (1 - (0.01 * humi))),3) - (15.9 + 0.117 * temp) * pow((1 - (0.01 * humi)), 14));

    if(isReturnTypeCelcius){
        return ans;
    }

    float value = ans*(9.0/5.0);
    return value+32.0;

}
 

答案 1 :(得分:2)

这应该可以胜任。以下代码仅考虑Celsius和Fahrenheit。要使用其他温度单位,请相应地修改代码;

-(float) findDewPointWithHumidity:(float) humidity forTemperature:(float) temperature isCelsius: (BOOL) isCelsius isReturnTypeCelcius: (BOOL) isReturnTypeCelcius
{
    float temp;

    if(isCelsius){
        temp = temperature;
    } else {
        temp = (temperature - 32) / 1.8;
    }

    float humi = 34;
    float ans =  (temp - (14.55 + 0.114 * temp) * (1 - (0.01 * humi)) - pow(((2.5 + 0.007 * temp) * (1 - (0.01 * humi))),3) - (15.9 + 0.117 * temp) * pow((1 - (0.01 * humi)), 14));

    if(isReturnTypeCelsius){
        return ans;           // returns dew Point in Celsius
    } 

    return (temperature - 32) / 1.8;   // returns dew Point in Fahrenheit
}