AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Genauigkeit von String to Single Konvertierung

Ein Thema von Harry Stahl · begonnen am 31. Mär 2020 · letzter Beitrag vom 19. Apr 2020
Antwort Antwort
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.732 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

AW: Genauigkeit von String to Single Konvertierung

  Alt 1. Apr 2020, 08:19
Mir ist zwar bekannt, dass Single nur 4 Byte hat und man daher von einer "geringen Rechengenauigkeit" spricht (double hat 8 Byte), aber ich habe das immer auf Berechnungsergebnisse bezogen (also multiplizieren, dividieren, etc.), wieso gibt es hier bei so einer einfachen Konvertierung eine Ungenauigkeit?
Auch diese "einfachen Konvertierungen" sind Berechnungen. Und so simpel sind die nun mal nicht, da von der Dezimal- in die Binärdarstellung und zurück konvertiert werden muss (du hast also in Deinem Beispiel schon zwei Konvertierungen). Das geht für manche Zahlen einfach und ohne Rundungs-Fehler, für andere sind die Fehler relativ groß.
Thomas Mueller
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.751 Beiträge
 
Delphi 12 Athens
 
#2

AW: Genauigkeit von String to Single Konvertierung

  Alt 1. Apr 2020, 08:29
Das eigentlich Problem ist, daß sich der Wert 29,7 weder als Single noch als Double exakt darstellen lässt. Der Compiler erzeugt daher eine die dem Wert nächste Binärdarstellung:

Double: 11101.10110011001100110011001100110011001100110011 0011 = 29.69999999999999928945726423989981412887573242187 5
Single: 11101.101100110011001101 = 29.700000762939453125

Durch die begrenzte Anzahl der Ziffern bei der Darstellung erscheint der Double-Wert exakt, obwohl er es auch nicht ist.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Andreas13

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

AW: Genauigkeit von String to Single Konvertierung

  Alt 1. Apr 2020, 09:11
Ganz allgemein: Mit einer endlichen Anzahl von Bits (4, 8,10) lassen sich nicht unendlich viele reelle Zahlen exakt darstellen.
Gruß, Andreas
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
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:30 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