![]() |
Double-Wert in einen Single-Wert umwandeln
Hallo,
ich erhalte über eine globale Variable einen Singlewert von 661.299998. Dieser Wert wird auf eine Variable vom Wert double mit trunc(661.299998)/10; Ich erhalte nun 661.200000. Leider muss ich nun diesenf Wert wieder in einen Single-Umwandeln und erhalte dann wieder einne Wert von 661.200003. Wie bekomme ich die 3 bei diesem Singlewert weg? Danke. Gruss -Swen |
Re: Double-Wert in einen Single-Wert umwandeln
Diese Ungenauigkeiten sind bei Floats normal (d.h. nicht zu ändern). Das liegt an der begrenzten Genauigkeit, die man mit (endlich vielen) Bits nur erreichen kann.
Normalerweise macht sich der Fehler allerdings erst etwas weiter hinten hinter dem Komma bemerkbar. Hast du vielleicht ein paar Nullen unterschlagen? Ansonsten probier mal, 0.000003 abzuziehen. Aber wie gesagt, 100%ige Genauigkeit wirst du im Allgemeinen nicht erreichen können! //edit: BTW, herzlich Willkommen in der DP! :hi: |
Re: Double-Wert in einen Single-Wert umwandeln
Beweis für tigerman's Behauptung:
Delphi-Quellcode:
Tipp: Kein Single, immer Extended. Oder zumindest Double. Der sollte doch genau sein.
Var
s : Single; Begin s:=6122/10; // sollte ja 612.2 sein showmessage (FloatToStr (s)); End; Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:40 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