Java Android应用程序返回NaN

Java Android应用程序返回NaN,java,android,xml,android-studio,nan,Java,Android,Xml,Android Studio,Nan,为什么calcGPA一直说它等于NaN?我确保它不是未定义的 double gradesMultiplied = ((quantityA * 4.00) + (quantityAMin * 3.70) + (quantityBPlu * 3.30) + (quantityB * 3.00) + (quantityBMin * 2.70) + (quantityCPlu * 2.30) + (quantityC * 2.00) + (quantityCMin * 1.70) + (quantity

为什么calcGPA一直说它等于NaN?我确保它不是未定义的

double gradesMultiplied = ((quantityA * 4.00) + (quantityAMin * 3.70) + (quantityBPlu * 3.30) + (quantityB * 3.00) + (quantityBMin * 2.70) + (quantityCPlu * 2.30) + (quantityC * 2.00) + (quantityCMin * 1.70) + (quantityDPlu * 1.30) + quantityD + (quantityDMin * 0.70));
double gradesAdded = (quantityA + quantityAMin + quantityBPlu + quantityB + quantityBMin + quantityCPlu + quantityC + quantityCMin + quantityDPlu + quantityD + quantityDMin + quantityF);
double calcGPA = gradesMultiplied / gradesAdded;
,尝试在开头将所有值显式转换为数字

再看看有没有可能是零除以零

“南”代表“不是一个数字”。如果浮点运算的某些输入参数导致该运算产生某些未定义的结果,则会生成“Nan”。例如,0.0除以0.0在算术上是未定义的。取负数的平方根也是未定义的

double gradesMultiplied = ((quantityA * 4.00) + (quantityAMin * 3.70) + (quantityBPlu * 3.30) + (quantityB * 3.00) + (quantityBMin * 2.70) + (quantityCPlu * 2.30) + (quantityC * 2.00) + (quantityCMin * 1.70) + (quantityDPlu * 1.30) + quantityD + (quantityDMin * 0.70));
double gradesAdded = (quantityA + quantityAMin + quantityBPlu + quantityB + quantityBMin + quantityCPlu + quantityC + quantityCMin + quantityDPlu + quantityD + quantityDMin + quantityF);
double calcGPA = gradesMultiplied / gradesAdded;
,尝试在开头将所有值显式转换为数字

再看看有没有可能是零除以零

“南”代表“不是一个数字”。如果浮点运算的某些输入参数导致该运算产生某些未定义的结果,则会生成“Nan”。例如,0.0除以0.0在算术上是未定义的。取负数的平方根也是未定义的

double gradesMultiplied = ((quantityA * 4.00) + (quantityAMin * 3.70) + (quantityBPlu * 3.30) + (quantityB * 3.00) + (quantityBMin * 2.70) + (quantityCPlu * 2.30) + (quantityC * 2.00) + (quantityCMin * 1.70) + (quantityDPlu * 1.30) + quantityD + (quantityDMin * 0.70));
double gradesAdded = (quantityA + quantityAMin + quantityBPlu + quantityB + quantityBMin + quantityCPlu + quantityC + quantityCMin + quantityDPlu + quantityD + quantityDMin + quantityF);
double calcGPA = gradesMultiplied / gradesAdded;

我每个人都把它修好了。我必须在我的方法中加入前两行,在按下按钮时添加数量。

我修正了它。我不得不在我的方法中输入前两行,在按下按钮时添加数量。

我怀疑
gradesMultiplied
gradesdded
都是零。或者你添加的许多数量中有一个已经是
NaN
。如果你使用数组而不是这些
quantityXXX
变量。在尝试除法之前,请尝试打印gradesMultiplied和gradesdded的值(使用System.out.println(gradesMultiplied)或者使用调试器查看值。我怀疑
gradesMultiplied
gradesAdded
都是零。或者您要添加的许多数量中有一个已经是
NaN
。如果您使用数组而不是这些
quantityXXX
变量,这会容易得多。请尝试打印gradesMulti的值在尝试除法之前使用plied和gradesdded(使用System.out.println(gradesMultiplied)或者使用调试器,看看值是什么,这是我刚才指出的,只是键入的不正确,但是我更新了。谢谢&干杯我知道我没有除以零,因为我确保gradesdded不是zero@tchristofferson然后很有可能在这个链中有一个NaN值,这就是我刚才指出的,只是没有正确键入,我更新了谢谢和干杯,我知道我没有除以零,因为我确保gradesAdded不是一个zero@tchristofferson那么,这条链中很可能存在一个NaN值