0

我正在为标准的 NFL 四分卫评分编写代码(有关我的方程式,请参见http://en.wikipedia.org/wiki/Passer_rating#Value_and_Limitations)。我在 Java 中输入了以下代码,但它给我的最大 QBR 是 152.0。我认为这与我选择的数据类型有关,但我不确定。

public static double main(int comp, int att, int TD, int INTR, int YDS)

{
    double a = ((comp)/(att) - 0.3) * 5;

    double b = ((YDS)/(att)-3) * 0.25;

    double c = (20 * TD)/(att);

    double d = 2.375 - (25*INTR)/(att);

    double rating = ((Math.max (0, Math.min (a, 2.375)))
                    +
                    (Math.max (0, Math.min (b, 2.375)))
                    +
                    (Math.max (0, Math.min (c, 2.375)))
                    +
                    (Math.max (0, Math.min (d, 2.375))))
                    * (50/3);
    return (rating);
}

}

4

1 回答 1

0

因为TDatt都是 int 虽然你将下一行的结果分配给一个双变量你不会得到正确的值。因此,将一个值转换为双重用途

 double c = (double)(20 * TD)/(att);

而不是使用

 double c = (20 * TD)/(att);
于 2013-10-09T04:27:57.093 回答