Einzelnen Beitrag anzeigen

Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
711 Beiträge
 
Delphi XE5 Professional
 
#17

AW: FloatToStrF Rundungsfehler ?

  Alt 3. Feb 2021, 22:31
... Meine Situation ist folgende: Ich habe eine Messgerät das den Wert immer mit 5 Nachkommastellen als String liefert. z.B. '0,50015'
Dieser wert wir dann für eine Nebenrechnung mit val() in eine Double Variable konvertiert.
Der User kann dann in der Applikation einstellen, ob er den Wert mit 5 oder weniger Nachkommastellen sehen will.
Mein Problem war eben, wenn er 4 Nachkommastellen einstellt,
wird aus der Double Var mit Floattostrf(var, fffixed,6,4) einmal 0,5002 und einmal 0,5001.
Welche Bedingung bringt Floattostrf dazu an der gleichen Codestelle zwei verschiedene Ergebnisse zu liefern ?
Hallo Egentur,
ich kann Dein ursprüngliches Problem nicht reproduzieren: Bei mir (XE5 Pro) funktioniert FloatToStrF (..) korrekt. Vielleicht ist noch ein Bug in XE2? Daher habe ich für Dich einige Routinen für die manuelle Rundung als Ersatz von FloatToStrF(..) im beiliegenden Testprogramm zusammengestellt.
Gruß, Andreas
Angehängte Dateien
Dateityp: zip FloatToStrF_Rundungsfehler.zip (59,2 KB, 7x aufgerufen)
Grüße, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher. (John C. Cornelius)
  Mit Zitat antworten Zitat