AGB  ·  Datenschutz  ·  Impressum  







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

Genauigkeit von Datentypen

Ein Thema von PaddyVII · begonnen am 25. Feb 2015 · letzter Beitrag vom 26. Feb 2015
Antwort Antwort
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: !!Riesenprobelm mit Datentypen!!

  Alt 25. Feb 2015, 14:13
darf doch eigentlich nicht sein, oder?
Doch. Oder: Leider ja. Oder: Is' so.
Deine Zahlen sind nur auf die ersten n Stellen korrekt - darauf kannst Du Dich verlassen, auf mehr jedoch auch nicht.
Deswegen sollte man Fließkommazahlen auch nicht als Ganzes auf Gleichheit zu irgendeinem anderen Wert prüfen, sondern Funktionen wie "CompareValue" nutzen, die Dir streng genommen nur sagen, ob Wert A "recht dicht" an Wert B ist.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.399 Beiträge
 
Delphi 12 Athens
 
#2

AW: Genauigkeit von Datentypen

  Alt 25. Feb 2015, 14:22
Zitat:
Ändert man jedoch den Datentyp von currency in double, single o.ä...Funkitioniert das Programm nicht mehr richtig!!
Jupp, das kann darf sein, denn genau aus dem Grund gibt es eben das Currency oder die BCD-Typen.
Und aus selbem Grund darf man reelle Typen niemals per Operator (vorallem = ) "genau" vergleichen, sondern verwendet z.B. CompareValue, SameValue, IsZero usw.

Zitat:
Deine Zahlen sind nur auf die ersten n Stellen korrekt - darauf kannst Du Dich verlassen, auf mehr jedoch auch nicht.
Auf wieviele Stellen man sich "verlassen" kann, das steht in der Dokumentation, aber danach kann/wird es Abweichungen geben, vorallem dann, wenn sich der Wert nicht ganz genau in einem dualen Zahlensystem darstellen lässt.

Umrechung: dual <> dezimal
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (25. Feb 2015 um 14:30 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#3

AW: Genauigkeit von Datentypen

  Alt 25. Feb 2015, 14:58
Geld ist ja ein bisschen ein Spezialfall, da es scheinbar gebrochene Werte sind, aber eigentlich gibt es eine diskrete Einheit z.B. 1 Cent.

Bei den meisten physikalischen Größen wie Geschwindigkeit, Masse, usw. hat man oft denn Fall, dass die Eingabewerte eine viel geringere Messgenauigkeit haben als die Ungenauigkeit der Gleitkommazahlen. Ansonsten ist das korrekte Umgehen mit numerische Ungenauigkeiten eine nicht triviale Aufgabe und wird häufig einfach ignoriert
  Mit Zitat antworten Zitat
UliBru

Registriert seit: 10. Mai 2010
155 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Genauigkeit von Datentypen

  Alt 25. Feb 2015, 15:56
Einen netten Überblick zum Thema Genauigkeit von Gleitkommazahlen gibt
https://software.intel.com/sites/def...ol-2012-08.pdf

Das Rechnen mit Geld hat auch Tücken trotz fester kleiner Einheiten, also z.B. 1 Cent. Nämlich dann wenn z.B. Mehrwertsteuer ins Spiel kommt. Wo dann eben wiederum kleinere Werte als die genannten Einheiten auftreten.
Er wollte so richtig in Delphi einsteigen. Nun steckt er ganz tief drin ...
  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 04:53 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