0

ヒート インデックスを計算する式があります。先生が方程式を提供してくれて、私はそれを正しくコピーしましたが、湿度変数を見ていません.

public class HeatIndexCalculator {

  private int temperature;
  private double humidity;
  private double heatIndex;
  public double calculateHeatIndex(int currentTemp, double currentHumidity){
     temperature = currentTemp;
     humidity = (currentHumidity/100.0);
     heatIndex=(-42.379)+(2.04901523*temperature)+10.14333127*humidity+         
            -0.22475541*temperature*humidity+                                       
            -0.00683783*temperature*temperature+                                    
            -0.05481717*humidity*humidity+                                      
            0.00122874*temperature*temperature*humidity+                            
            0.00085282*temperature*humidity*humidity+                               
            -0.00000199*temperature*temperature*humidity*humidity;  

以下は、メソッドを呼び出そうとしたときです

public static void main(String[] args) {
  Scanner input = new Scanner(System.in);
    int x;
    double y,z;
    HeatIndexCalculator HeatC = new HeatIndexCalculator();
    System.out.println("Please enter a temperature in degrees Fahrenheit");
    x = input.nextInt();
    System.out.println("Please enter the current humidity as a percenage");
    y = input.nextDouble();
    z = HeatC.calculateHeatIndex(x, y);
   HeatC.printHeatIndex(x, y, z);
}           
4

2 に答える 2

0

このソリューションは機能しますが、おそらく十分な精度ではありません:

public static double calculateHeatIndex(int currentTemp, double currentHumidity)
{
    int temperature = currentTemp;
    double humidity = (currentHumidity);
    double heatIndex = (-42.379) + (2.04901523 * temperature) + 10.14333127 * humidity + -0.22475541 * temperature * humidity
            + -0.00683783 * temperature * temperature + -0.05481717 * humidity * humidity + 0.00122874 * temperature
            * temperature * humidity + 0.00085282 * temperature * humidity * humidity + -0.00000199 * temperature
            * temperature * humidity * humidity;
    return heatIndex;
}

@Test
public void testConst()
{
    System.out.println(String.valueOf(calculateHeatIndex(95, 55)));
}

結果 :

108.94701570000008
于 2013-02-06T23:50:29.090 に答える
0

あなたの方法に問題はありません。コードを少し拡張して、実行可能な例を作成しました。出力は次のとおりです。

temperature=20 humidity=50 : -1.0736070574999943
temperature=20 humidity=25 : -2.601307430624994
temperature=20 humidity=75 : 0.44927371937500604

そのため、湿度には十分注意を払っています。使用中の湿度に2つの異なるユニットがあり、一方は他方よりも100倍大きいため、問題は実際にはテストにあると思われます。

于 2013-02-06T23:47:38.310 に答える