Hallo, beim Rechnen mit Gleitkommazahlen wird Standardmäßig immer auf die nächste Maschinenzahl gerunden. Also aus 2/3 wird 0.66666666666666663 und nicht 0.66666666666666674. Weil 0.66666666666666663 am nächste am richtigen Ergebnis liegt. Gibt es eine Funktion, um die Mantisse einer Gleitkommazahl auf die betragsmäßig nächstkleinere Zahl abzurunden?
nicht in Standard-C++
Die eventuelle Lösung muss nicht zum C++ Standard gehören.
Dann geht es vielleicht spezifisch für die Umgebung, die hier keiner weiß außer dir :-) Bei den aktuellen Pentium-FPUs kann man m.W. einiges einstellen, was die zukünftige Rundung betrifft. Da wirst du dich aber etwas einlesen müssen. Vielleicht ist das hier ein Anfang: http://stackoverflow.com/questions/6867693/change-floating-point-rounding-mode (nur, um dir das googeln zu ersparen)
Vielen Dank, das sieht sehr vielversprechend aus. Werde das dem nächst testen. PS Wenn ich per google etwas gefunden hätte würde ich hier nicht posten.
Das konnte ich mir nicht verkneifen, weil ich den Link auch mit google gefunden hatte :-)
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.