Hallo ich habe folgendes Problem,
wie ihr im folgenden Programtext sehen könnt benutze ich mehre if Bedingungen sowie eine while Anweisung. Diese funktioniern auch wunderbar.
Jedoch soll das Programm sobald es einen Wert in der ArrrayList größer gleich eins erreicht alle dann folgenden Werte gleich eins setzen.
Dies funktioniert jedoch nicht, ich glaube das dass etwas mit dem Ergebnis zutun hat. Da Java als Ergebnis NaN „not a number“ ausgibt.
Ich habe bereits gesucht aber leider keine Erklärungen für mein Problem gefunden, da ich ja mit der if Bedingung keine NaN Ergebnisse erhalten dürfte.
Vom Ergebnis macht es keinen Unterschied ob die Schleife ein oder auskommentiert ist.
Auszug aus dem Ergebnisfile
16950 121.62 0.9981232405784981
16960 121.61 0.9985824186498932
16970 121.62 0.9989932707533176
16980 121.61 0.9993516107755691
16990 121.61 0.9996522706925203
17000 121.61 0.9998867015062455
17010 121.61 1.0000364442456746
17020 121.62 NaN
17030 121.61 NaN
Vielen Dank für eure Hilfe…
wie ihr im folgenden Programtext sehen könnt benutze ich mehre if Bedingungen sowie eine while Anweisung. Diese funktioniern auch wunderbar.
Jedoch soll das Programm sobald es einen Wert in der ArrrayList größer gleich eins erreicht alle dann folgenden Werte gleich eins setzen.
Dies funktioniert jedoch nicht, ich glaube das dass etwas mit dem Ergebnis zutun hat. Da Java als Ergebnis NaN „not a number“ ausgibt.
Ich habe bereits gesucht aber leider keine Erklärungen für mein Problem gefunden, da ich ja mit der if Bedingung keine NaN Ergebnisse erhalten dürfte.
Vom Ergebnis macht es keinen Unterschied ob die Schleife ein oder auskommentiert ist.
Code:
if (choice1.getSelectedIndex()>=3) {
double n2 = Double.parseDouble(jTextFieldn21.getText());
while (durchlaufnummer<=DimesionMyArrayList1-1) {
if (ArrayListCure1.get(durchlaufnummer-1)>=1) { //Um diese if-else Anweisung handelt es sich
if (jLabelDif1.getText().equals("Dif An")) {
dif = (2/(1+Math.exp((ArrayListCure1.get(durchlaufnummer-1)-cureMax)/b)))-1;
} else {
dif =1;
}
double temp = myArrayListTemp1.get(durchlaufnummer)+273.15; // in Kelvin
double term1 = ...;
double term2 = ...;
term2 = ..;
dcdt=(term1+term2)*dif ;
ArrayListCure1.add(durchlaufnummer,(ArrayListCure1.get(durchlaufnummer-1)+
dcdt*(myArrayListTime1.get(durchlaufnummer)-
myArrayListTime1.get(durchlaufnummer-1))));
} else { //Um diese if-else Anweisung handelt es sich
ArrayListCure1.add(durchlaufnummer, 1.0);
}
durchlaufnummer++;
}
}
Auszug aus dem Ergebnisfile
16950 121.62 0.9981232405784981
16960 121.61 0.9985824186498932
16970 121.62 0.9989932707533176
16980 121.61 0.9993516107755691
16990 121.61 0.9996522706925203
17000 121.61 0.9998867015062455
17010 121.61 1.0000364442456746
17020 121.62 NaN
17030 121.61 NaN
Vielen Dank für eure Hilfe…