Autor Thema: Kurioses Verhalten bei Hide-When-Formel  (Gelesen 1881 mal)

Offline Bille

  • Senior Mitglied
  • ****
  • Beiträge: 258
  • Geschlecht: Weiblich
  • Ich kam, sah und ... staunte!
Kurioses Verhalten bei Hide-When-Formel
« am: 17.11.08 - 15:01:19 »
Hallo,

ich setze in einer Maske eine Hide-When-Formel ein, die eine Zeile verbergen soll, wenn die Differenz aus zwei Zahlen kleiner als 0,5 ist.

Code
(SK_Produkt = "FG" & SK_Abweichung <1/2) 

Der Wert für das Feld "SK_Abweichung" ergibt sich aus
Code
SK_KonditionK - SK_KonditionN

Bei der Eingabe von 4,1 und 3,6 wird die Zeile allerdings verborgen, obwohl die Differenz 0,5 ergibt und somit nicht kleiner 0,5 ist.

Das Seltsame daran ist, dass bei all den anderen Kombinationen (z.B. 4,0 - 3,5 oder 4,11 - 3,61 oder 3,5 - 3,0) die auch 0,5 ergeben, die Zeile nicht verborgen wird.

Kann mir jemand sagen, was da dahinter steckt?

Bille

Experience is the name
everyone gives to his mistakes.
                                             (Oscar Wilde)

Offline it898ur

  • Senior Mitglied
  • ****
  • Beiträge: 478
Re: Kurioses Verhalten bei Hide-When-Formel
« Antwort #1 am: 17.11.08 - 15:33:40 »
Hallo,

hier zeigt sich, dass Notes kein Rechenprogramm ist und endliche Nachkommastellen hat. Auch wenn die Differenz genau 0,5 ist, ergibt sich für Notes intern zum Teil 0,4999999999. Hier hilft nur eine Rundung über @Round vor dem Vergleich in der Hide When Formel.

Gruß

André

Offline Bille

  • Senior Mitglied
  • ****
  • Beiträge: 258
  • Geschlecht: Weiblich
  • Ich kam, sah und ... staunte!
Re: Kurioses Verhalten bei Hide-When-Formel
« Antwort #2 am: 17.11.08 - 15:47:58 »
Mmh, warum Notes da auf Rundungsdifferenzen kommt, kann ich nicht nachvollziehen.

Außerdem verstehe ich nach wie vor nicht, warum es dann bei den Konstellationen 3,5 - 3,0 oder 4,2 - 3,7 auch 0,5 ergibt. Müsste dann nicht immer eine Rundungsdifferenzen rauskommen?
Experience is the name
everyone gives to his mistakes.
                                             (Oscar Wilde)

Offline Bille

  • Senior Mitglied
  • ****
  • Beiträge: 258
  • Geschlecht: Weiblich
  • Ich kam, sah und ... staunte!
Re: Kurioses Verhalten bei Hide-When-Formel
« Antwort #3 am: 17.11.08 - 15:55:04 »
Ok, wenn man die Zahl vorher rundet, hat Notes auch kein Problem mehr.
Vielen Dank André für den Tipp!

Bille
 :D
Experience is the name
everyone gives to his mistakes.
                                             (Oscar Wilde)

Offline it898ur

  • Senior Mitglied
  • ****
  • Beiträge: 478
Re: Kurioses Verhalten bei Hide-When-Formel
« Antwort #4 am: 17.11.08 - 15:59:26 »
Gern geschehen !

Das warum kann ich auch nicht beantworten, aber ich bin auch schon über diesen "Stein" gestolpert.

André

Offline Werner Götz

  • Aktives Mitglied
  • ***
  • Beiträge: 248
  • Geschlecht: Männlich
Re: Kurioses Verhalten bei Hide-When-Formel
« Antwort #5 am: 17.11.08 - 17:54:24 »
Das Problem liegt wohl daran, dass manche Zahlen, die uns im Dezimalsystem als "einfach" erscheinen als Binärzahlen periodische Brüche sind.
z.B. Dezimal 0,1 ist binär 0,00011001100110011...

Solche Zahlen können somit nur "ungenau" gespeichert werden und es kann immer wieder zu Problemen wie dem geschilderten kommen.

Dass es aber nicht immer zu diesem Problem kommt, liegt daran, dass es natürlich auch endliche binäre Nachkommazahlen gibt
z.B. Dezimal 0,5 ist binär 0,1
Und mit solchen kann man natürlich auch anständig rechnen.

-Werner

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz