2016-04-20 12 views
1

Warum sagt calcGPA immer wieder, dass es gleich NaN ist? Ich stelle sicher, dass es nicht undefiniert ist.Android-App Rückgabe von 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; 
+2

Ich vermute, dass sowohl 'GradeMultiplied' als auch' GradesAdded' Null sind. –

+0

Oder eine der vielen Mengen, die Sie hinzufügen, ist 'NaN' bereits. –

+0

Dies wäre viel einfacher, wenn Sie anstelle dieser 'quantityXXX'-Variablen ein Array verwenden würden. –

Antwort

0

NaN is Not a Number, versuchen Sie explizit alle Werte in Zahlen am Anfang zu konvertieren.

Auch unter this ist es möglich, dass Sie Null durch Null teilen?

"NaN" steht für "keine Nummer". "Nan" wird erzeugt, wenn eine Gleitkommaoperation einige Eingabeparameter hat, die bewirken, dass die Operation ein undefiniertes Ergebnis erzeugt. Zum Beispiel ist 0,0 geteilt durch 0,0 arithmetisch undefiniert. Die Quadratwurzel einer negativen Zahl ist ebenfalls undefiniert.

+0

das war was ich darauf hinwies nur nicht richtig, ich updated though.Thanks & cheers – workabyte

+0

Ich weiß, dass ich nicht durch Null dividieren, weil ich sicher bin, dass NotenAdded ist keine Null – tchristofferson

+0

@Tchristofferson dann Quoten gibt es einen NaN-Wert in dieser Kette – workabyte

0

Ich reparierte es alle. Ich musste die ersten 2 Zeilen in meine Methoden schreiben, die die Menge beim Drücken des Knopfes addieren.