Forum: Object-Pascal / Delphi-Language
by Jasocul,
15. Mär 2024
Roundmode ist threadsafe. Deine Vermutung trifft da zu.
Die Einstellung des Mode wirkt sich auf die FPU aus, wenn ich die DOH richtig verstanden habe. Allerdings bin ich davon ausgegangen, dass sich das nur auswirkt, wenn Rundungsfunktion aufgerufen werden. Das Verhalten, das ich festgestellt habe, würde bedeuten, dass es sich auf jede Rechenoperation in der FPU auswirkt.
Das wäre für mich...
Forum: Object-Pascal / Delphi-Language
by Jasocul,
15. Mär 2024
Das würde bedeuten, dass Delphi intern auch den Roundmode benutzt, wenn ohne Rundungsfunktion gerechnet wird. Das halte ich für unwahrscheinlich. Ansonsten ist mir das Thema Gleitzahlarythmetik bekannt. Ist zwar lange her, aber ein paar Semester Mathe-Studium habe ich hinter mir.:wink:
Forum: Object-Pascal / Delphi-Language
by Jasocul,
15. Mär 2024
Wieso sollte es in der ersten Zeile zu einer Rundung kommen? Es wird dort keine Rundungsfunktion aufgerufen.
Der Roundmode war übrigens rmNearest.
Forum: Object-Pascal / Delphi-Language
by Jasocul,
15. Mär 2024
Kleines Gimmick zum Wochenende.
Da ich gerade ein größeres Refactoring mache, wollte ich alte (etwas merkwürdige) Berechnungen mit Rundungen überarbeiten.
Dabei hatte ich Source, der etwa so aussah:
Result := Result * Faktor;
SetRoundMode(rmUp);
Result := SimpleRoundTo(Result); // Oder war es RoundTo(Result, -2) ?
SetRoundMode(rmNearest);
Ergebnis: Die Rundung hat nicht...