【问题标题】:Android app Returning NaNAndroid 应用返回 NaN
【发布时间】:2016-08-13 19:28:55
【问题描述】:

为什么 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;

【问题讨论】:

  • 我怀疑gradesMultipliedgradesAdded 都是零。
  • 或者您要添加的众多数量之一已经是NaN
  • 如果您使用数组而不是这些quantityXXX 变量,这会容易得多。
  • 在尝试除法之前尝试打印出 gradesMultiplied 和 GradesAdded 的值(使用 System.out.println(gradesMultiplied) 或使用调试器查看值是什么

标签: java android xml android-studio nan


【解决方案1】:

NaN is Not a Number,尝试在开始时将所有值显式转换为数字。

同时查看this 是否有可能将零除以零?

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

【讨论】:

  • 这就是我所指出的,只是没有输入正确,不过我更新了。谢谢和欢呼
  • 我知道我没有除以零,因为我确保 GradesAdded 不是零
  • @tchristofferson 那么很可能该链中有一个 NaN 值
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2017-08-12
    • 2018-10-11
    • 1970-01-01
    • 2013-07-15
    • 2011-04-22
    • 2016-05-20
    • 2014-02-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多