LabVIEWForum.de
Frage zu "Quotient und Rest" - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Frage zu "Quotient und Rest" (/Thread-Frage-zu-Quotient-und-Rest)



Frage zu "Quotient und Rest" - Nschnitzler - 09.03.2009 16:11

[attachment=17109]Hallo zusammen,

ich habe folgende Merkwürdigkeit entdeckt:
bei 1/0,1 rechnet LV 9 Rest 0,1 und nicht 10 Rest 0
was meiner Meinung nach Rauskommen müsste.
Ist das ein Bug oder stehe ich auf dem Schlauch?
Gruss
Norbert


Frage zu "Quotient und Rest" - jg - 09.03.2009 16:29

Nein, würde ich nicht als Bug bezeichnen, sondern das ist ein typisches Resultat, das sich aus der Darstellung von Fließkommazahlen im Binärformat ergibt.

Problem ist: 0,1 kann nicht exakt als Fließkommazahl dargestellt werden, erhöhe mal die Anzahl der sichtbaren Nachkommastellen auf z.B. 20 Digits of Precision, dann siehst du, was ich meine.

"Quotient and Reminder" ist aus meiner Sicht prädestiniert für die Behandlung von Integer-Zahlen, und nicht von Fließkommazahlen.

Gruß, Jens


Frage zu "Quotient und Rest" - Lucki - 09.03.2009 16:39

' schrieb:ich habe folgende Merkwürdigkeit entdeckt:
Es lohnt sich auch immer wieder, die Hilfe zu lesen:
[attachment=17111]


Frage zu "Quotient und Rest" - Nschnitzler - 09.03.2009 18:20

So weit so gut, aber wie wandel ich eine Fließkommazahl mit einer bestimmten Anzahl Nachkommastellen in einen Integer um, ohne das die Genauigkeit leidet?


Frage zu "Quotient und Rest" - Lucki - 09.03.2009 18:34

' schrieb:So weit so gut, aber wie wandel ich eine Fließkommazahl mit einer bestimmten Anzahl Nachkommastellen in einen Integer um, ohne das die Genauigkeit leidet?
z.B. für eine Nachkommastelle:
[attachment=17119]


Frage zu "Quotient und Rest" - Nschnitzler - 09.03.2009 18:45

Das ist mir klar,
die Anzahl der Nachkommastellen hängt aber von dem Benutzer ab und kann daher nicht fix vorgegeben werden.


Frage zu "Quotient und Rest" - Lucki - 09.03.2009 18:55

' schrieb:Das ist mir klar,
die Anzahl der Nachkommastellen hängt aber von dem Benutzer ab und kann daher nicht fix vorgegeben werden.
Einfach die 10 in meinem Bild durch z.B 1000000 ersetzen. Dann funktioniert es bis zu 6 Nachkommastellen, und bei weniger Nachkommastellen (also wie im obigen Beispiel) ist das kein Nachteil. Damit es nicht zum Überlauf kommt, muß evtl. das Format I64 statt I32 benutzt werden.

Allgemein gesagt:
Ausgehend von dem zu erwertenden Wertebereich für x, y und x/y, kann man den Faktor 10^N so groß wie möglich machen. Nur eben nicht so groß, daß es bei der Konversion zu I32 bzw. U64 zum Überlauf kommen kann.