AGB  ·  Datenschutz  ·  Impressum  







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

FloatToStrF Rundungsfehler ?

Ein Thema von egentur · begonnen am 28. Jan 2021 · letzter Beitrag vom 5. Feb 2021
Antwort Antwort
Incocnito

Registriert seit: 28. Nov 2016
233 Beiträge
 
#1

AW: FloatToStrF Rundungsfehler ?

  Alt 5. Feb 2021, 14:30
Hier
http://docwiki.embarcadero.com/Libra....Default8087CW
steht, dass der Default-Wert $1332 also 4714 sein soll.

Aber auch bei mir ist beim Start dort schon ein anderer Wert enthalten.
Indy? QuickReport? Apollo Datenbank? Jedi? Keine Ahnung, wer den Wert verstellt.

Für deinen Fall:
4722 = 0001 0010 0111 0010
Rounding Contol = 00
Precission Control = 10 = Double Pressision 53bits
---
4978 = 0001 0011 0111 0010
Rounding Contol = 00
Precission Control = 11 = Double Extended Pressision 64bits

Eine höhere Genauigkeit führt hier nur zu einem anderen Ergebnis.
Meiner Meinung nach wird zwar bei erhöhter Genauigkeit mathematisch richtig rundet,
aber bei Einschaltung des gesunden Menschenverstandes eher falsch rundet.
Aufgerundet wird ja immer bei "5", aber durch die "Ungenauigkeit" des
PC steht dort "4,99999999", also muss ich trotzdem aufrunden, eben
weil das ja nur ein falscher Ausgagswert Aufgrund der technischen Gegebenheiten ist.
Außerdem um darauf wieder zurück zu kommen ist das jetzt der Fall für
deine 0,50015 ... für andere Zahlen sieht das wieder anders aus und du kannst
nicht "alle" Möglichkeiten testen (behaupte ich mal).

Das unterschiedliche Verhalten kann also durch das 8087 ControlWord erklärt werden.
Trotzdem empfehle ich (wie du es ja schon gemacht hast) das einfach zu umgehen.

LG Incocnito
  Mit Zitat antworten Zitat
egentur

Registriert seit: 27. Sep 2006
Ort: Freising
60 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

AW: FloatToStrF Rundungsfehler ?

  Alt 5. Feb 2021, 15:04
Danke an Incocnito und alle anderen

Ich habe auch im Source keine Stelle gefunden wo das explizit umgestellt wird.

Ich mach dann mal +0.000001

Schöne Grüße
  Mit Zitat antworten Zitat
egentur

Registriert seit: 27. Sep 2006
Ort: Freising
60 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

AW: FloatToStrF Rundungsfehler ?

  Alt 5. Feb 2021, 15:39
Kurzer Nachtrag

Ich hab doch noch eine DLL gefunden, die für die serielle Schnittstelle zu einem bestimmten
Messgeräte verwendet wird, und die verstellt den Wert !

Natürlich ohne source von extern

Aber wenn man endlich weiß
  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 17:48 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