Dann zeig doch mal alle Manipulationen an dieser Variablen von der ersten Zuweisung über die Anzeige mit dem ersten Wert bis zu dem Zeitpunkt, wo der andere Wert angezeigt wird.
Das ist eine neue Variable. zwischendurch alles freigegeben. Längerer Ablauf. die Variable ist Teil eines TDictionary< Integer, Double>.
Der Weg zu der Variable ist aber komplett identisch... Es wird nach der Zuweisung nur Lesend darauf zugegriffen.
Es jeweils von mir der selbe Programm-Ablauf angesprochen (Test-Button auf dem Haupt-Formular), wodurch die Daten gelesen werden.
Das MouseOver in Delphi über die Variable zeigt immer "13,727735".
ein "Frac( lWert)" in der Rundungs-Funktion zeigt bei der Fehlersuche -> Überwachte Ausdrücke beim ersten Durchlauf "0,499999999913257", bei den folgenden "0,5".
Somit ist für Delphi die Zahl < ,5 -> also beim ersten Durchlauf immer abrunden.
Ich hab schon bei mir nach SetRoundMode u. ä. gesucht aber nichts gefunden. nachdem ich den String erstellt habe,m wird auch eine .dll genutzt, die den erstellten String verarbeitet.
Selbst meine kleine Test-Funktion aus meinem letzten Post verhält auch so. zuerst "13,72773", nach dem Aufruf meiner Funktion ""13,72774".
Vielleicht ist das der Hinweis, dass da doch was verstellt wird?!?