SAP Jobsuche bei DV-Treff
Chris1234
vor 10 Jahre
Hallo zusammen,

habe ein Problem mit einer Auswahlbedingung, vielleicht hat jemand einen Tipp oder eine Idee.

Problem:

Es werden Einzelmodule aneinander gerreiht zu einem großen Modul. Das Einzelmodul ist meinetwegen 100 mm breit. Wenn das große Modul nun 650 mm breit ist, muss ein Einzelmodul geschnitten werden.

Habe es so gelöst, dass das große Modul durch das Einzelmodul geteilt und einmal auf und einmal abgerundet wird und wenn es gleich ist braucht nichts geschnitten werden:

NOT (ceil($root.BREITE/100) = floor($root.BREITE/100))

Klappt auch alles bis auf ein neues Material jetzt. Da ist das Modul nun 90,8 mm breit. Als Gesamtbreite gibt man nun 181,6 mm ein...und trotzdem wird der Arbeitsschritt gezogen. Habe einmal auf den Breitenwert geguckt, der übergeben wird, der ist 181,59999999999E02...und nun weiss ich nicht weiter. Kann ich den Wert irgendwie mit einem Befehl auf 2 Dezimalstellen runden? Ich kenne hier nur das CEIL und FLOOR...

Vielen Dank schonmal!

MfG

.fetox
vor 10 Jahre
Hallo,

bin zwar nicht wirklich fit in Beziehungswissen, aber normalerweise sollte FLOOR und CEIL ja gerade auf die nächste ganze Zahl runden, das hier sieht nach Fließkommungenaugkeit aus. Wie ist denn das Merkmal BREITE definiert, idealerweise sollte das ja als Festpunktformat definiert sein mit 2 Nachkommastellen (dazu darf unten die Exponentialdarstellung nicht auf 'Wissenschaftliche Darstellungsform' stehen).

Wenn das nicht geht/hilft kann ich nur noch den Tip geben nicht mit 'ist gleich' zu arbeiten bei dem Vergleich sondern mit 2 Vergleichen mit einem genügend kleinen Epsilon um ein 'fast gleich' zu formulieren, ungefähr so (Pseudocode, wie gesagt, mein Beziehungswissen ist etwas eingerostet ;P):

Definiere ein Epsilon = 0.00001

und dann

NOT ((((ceil($root.BREITE/100) + Epsilon) > floor($root.BREITE/100))) AND (((ceil($root.BREITE/100) - Epsilon) < floor($root.BREITE/100))))

Klammern sind hier im overkill, ich weiß nicht wie stark AND und <> binden bei Beziehungswissen, aber so müsste es im Extremfall geklammert werden..

Grüße,

Olli