![]() |
Problem mit TDxDraw und FloatToStr()
Hallo,
ich habe ein ziemlich seltsames Problem mit der aktuellen Version von TDxDraw und der Function FloatToStr() von Delphi 2007. Sobald ein DxDraw auf der Form platziert ist, gibt FloatToStr() ziemlich wirre Werte von sich:
Delphi-Quellcode:
Ohne DxDraw auf der Form:
var
s: String; r: Double; begin r := 5; s := SysUtils.FloatToStr(r); Showmessage(s); Rückgabe: "5" (richtig) MIT DxDraw auf der Form: Rückgabe: "4,99999992153375" (irgendwie falsch) Es scheint irgendwie ein Fehler mit der Genauigkeit zu geben; wenn ich die Function FloatToText() direkt aufrufe (was FloatToStr ja schließlich auch macht), tritt der Fehler solange auf, bis ich den Parameter "Precision" (standardmäßig auf 15) auf einen Wert unter 7 setze:
Delphi-Quellcode:
SetString(s, Buffer, FloatToText(Buffer, r, fvExtended, ffGeneral, 7, 0));
Wie gesagt tritt dieses Problem nur auf, wenn ein DxDraw auf der Form liegt; ob DxDraws in der uses-Klausel auftritt, ist egal. Ich weiß, das DxDraw veraltet ist, daher bitte keine (berechtigten) Hinweise auf Alternativen :) Hat jemand eine Idee, woran das liegen könnte? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz