AGB  ·  Datenschutz  ·  Impressum  







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

Single runden

Ein Thema von Scurra · begonnen am 18. Mär 2015 · letzter Beitrag vom 22. Mär 2015
Antwort Antwort
Medium

Registriert seit: 23. Jan 2008
3.688 Beiträge
 
Delphi 2007 Enterprise
 
#1

AW: Single runden

  Alt 18. Mär 2015, 23:42
Wenn einen Dinge wie 49,9999995743 statt 50 stören (also nicht nur in der Anzeige, da ist das ja lösbar, sondern in der Rechnung selbst), muss man i.A. auf Fließkommazahlen verzichten. Auch wenn die Operanden und Ergebnisse vielleicht genau darstellbar wären, heisst es noch lange nicht, dass der Rechenweg (in diesem Fall die Rundung) auch nur mit exakt darstellbaren Zwischenwerten passiert. Da gibt es auch keinen Weg, dies für den generellen Fall zu garantieren. Festpunkt Arithmetik, oder lebe damit.
Und es ist ja nicht so, als hätten wir das Thema "Ungenauigkeit von Floats" fast wöchentlich hier. Es ist eben eine gegebene Eigenschaft dieser Technik. Daher wundert mich, dass die anderen Antworten darauf bisher überhaupt nicht eingegangen sind.
Du findest also mehr Material dazu hier als einem lieb wäre.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#2

AW: Single runden

  Alt 19. Mär 2015, 03:27
Und es ist ja nicht so...
Langsam bin ich dafür, Floatingpoint zu verbieten. Extended, Double und Single sollte ab sofort BCD oder decimal mit der gleichen Genauigkeit, von mir aus 1024 byte groß. Speicher kostet ja nichts mehr.

Obwohl. Dann fehlen 10% der Forumsbeiträge.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Single runden

  Alt 19. Mär 2015, 04:08
Egal auf was man rundet, in Fließkommazahlen bleiben dennoch die bekannten Rundungsfehler enthalten, welche auf Grund des Speicherformates entstehen.

Will man unbedingt in der Anzeige ein bestimmtes Format, dann sollte man auch an dieser Stelle das Format entsprechend vorgeben.
Format, FloatToStrF, Str, FloatToTextFmt, ...
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#4

AW: Single runden

  Alt 19. Mär 2015, 06:04
BCD und decimal sind jetzt aber nicht unbedingt Floating Point Zahlen. Das ist ja gerade der Witz.
  Mit Zitat antworten Zitat
Scurra

Registriert seit: 19. Jan 2015
81 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Single runden

  Alt 21. Mär 2015, 11:52
Meine "Lösung" sieht jetzt so aus, dass ich ganz einfach die Rundungsfehler akzeptiere. Bei 4 Nachkommastellen, auf die ich meistens runde, macht es auch keinen so großen Unterschied. Gravierend würde es werden, wenn ich auf eine ganze Zahl runden möchte und es wird falsch gerundet.

Danke an alle, die geholfen haben!
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#6

AW: Single runden

  Alt 21. Mär 2015, 12:47
Und manchmal wirst Du einen Cent daneben liegen. Und Du wirst nichts dagegen unternehmen können.

Aber klar, wenn Du dein Privatportfolio von mehreren Hundert Mio Euro damit verwaltest, ist das eh wurscht.
  Mit Zitat antworten Zitat
Scurra

Registriert seit: 19. Jan 2015
81 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Single runden

  Alt 21. Mär 2015, 13:11
Und manchmal wirst Du einen Cent daneben liegen. Und Du wirst nichts dagegen unternehmen können.

Aber klar, wenn Du dein Privatportfolio von mehreren Hundert Mio Euro damit verwaltest, ist das eh wurscht.
Wie gesagt, mein Problem hat nichts mit Geld zu tun, aber ja. Prinzipiell hast du recht
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

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

AW: Single runden

  Alt 21. Mär 2015, 13:34
Ha, was fehlt noch: Symbolisches Rechnen!
Dann stehen da 4711,1337*sin(3*sqrt(2)*pi)^2 Cent auf der Rechnung.
  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 14: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