ich wollte gestern ein Programm von Word auf Float ändern, da teils genauere Werte mit Kommastellen benötigt werden. Allerdings trat dabei ein Fehler auf. Jetzt hab ich ein kleines Testprogramm geschrieben, dabei tritt der Fehler auch auf. Es macht einen Unterschied ob eine Variable vom Typ Float oder Word ist, egal ob der selbe Wert drinn gespeichert wird:
Code: Alles auswählen
Wert_1.w = 100
Wert_2.f = 50
Wert_3.w = 22
Wert_4.w = 10
If Wert_1 >= Wert_2 - (Wert_3 / 2) And Wert_4 <= Wert_2 + (Wert_3 / 2)
Debug "Test 1 mit Float anstelle von Word geht"
Else
Debug "Test 1 mit Float anstelle von Word geht NICHT!"
EndIf
Debug "---"
Wert_5.w = 100
Wert_6.w = 50
Wert_7.w = 22
Wert_8.w = 10
If Wert_5 >= Wert_6 - (Wert_7 / 2) And Wert_8 <= Wert_6 + (Wert_7 / 2)
Debug "Test 1 mit Word geht"
Else
Debug "Test 1 mit Word geht NICHT!"
EndIf
Wie kann das denn sein, dass es da nicht mehr geht? Das wird doch wohl kein Rundungsfehler sein, so grob muss die Float doch korrekt sein, oder? Ist ja nun keine spezielle Kommastellen-Berechnung bei der große Genauigkeit walten muss, sondern recht grob sodass auch kleine Fehler in den Nachkommastellen keinen Unterschied machen dürften. Aber dennoch geht's nicht.
Jemand eine Idee woran das liegen könnte?
Ach, übrigends, ändere ich Wert_1 von Word auf Float (im ersten Beispiel) dann funktioniert auch der erste Teil oben. Es spielt also eine Rolle, ob es word oder Float ist. Nur warum ist das so?
mfg.
Sunny