Hallo Erika,
Aber nochwas - die beiden ausgelesenen Zahlen haben eine unterschiedliche Anzahl von Dezimalstellen - der Vergleich schlägt fehl
jupp, das ist so. Die interne Genauigkeit ist ja deutlich höher - als die, die angezeigt wird. Hängt von den verwendeten Typen ab - und von dem mapping auf die C++ typen. Das ist die größte Herausforderung beim Rechnen mit Fliesskommazahlen. Ein Rechner kann nicht exakt rechnen!
Es gibt diverse Techniken, das abzufangen - aber eine exakte Genauigkeit wirst Du nur mit Ganzzahlen hinbekommen. Lösung könnte also so aussehen:
- Einigung auf wieviel Stellen nach dem Komma die Zahl passen muss.
- abschätzen, wie groß die Zahl maximal werden kann.
- eine long-Variable defineiren (kann nur ganze Zahlen aufnehmen)
- die Ergebniswerte mit einem Faktor multiplizieren - also z.b. 1000 bei dreistelliger Genauigkleit - und der jeweiligen longvariablen zuweisen
- die dann entsprechend vergleichen. -> jetzt gibt es True oder False
Eine andere Strategie geht mit Ungenauigkeiten um: Du vergleichst nicht die beiden Werte an sich, sondern die nimmst die Differenz (Wert a - Wert b) und vergleichst das (absolute) Ergebnis mit einem < oder > zu einem von Dir gewählten Grenzwert.
Die "Rundungstechnik" geht auch, ist aber meist ungenauer.
Viele Grüße
Tom