Das Problem der Fließkommaarithmetik ist das Vergleiche nicht funktionieren ohne Bedingungen mit einzubauen.
1 != 1.00000000000001
1 != 0.99999999999999
Obwohl die rechte Seite nahezu 1 entspricht wird dies vom Computer anderes gesehen.
Auf die Schnelle als möglichen Lösungsweg würde ich
prüfen ob die Gleitkommazahl ein bestimmten Abstand zur nächstgelegenen ganzen Zahl unterschreitet.
1. ermittle die nächstliegende ganze Zahl.
2. definiere Toleranzabstand zB 0.0000001
3.
prüfe ob die Differenz zwischen Gleitkommazahl und nächstliegender ganzer Zahl den Toleranzabstand unterschreitet. Ist diese Bedingung erfüllt kann man sagen, der Wert liegt so nah an der ganzen Zahl, dass er als ganze Zahl gelten kann.
Gibt sicherlich auch andere Wege, dies war das erste was mir dazu eingefallen ist.
Beim
Prüfen auf Gleichheit von zwei double-Werten arbeitet man oft mit solchen Toleranzwerten. Dies hier ist nichts anderes, nur dass man mit der nächstliegenden Ganzzahl vergleicht.
C$D