[Gelöst] DecimalPlaces -> tatsächlich mehr Nachkommastell

22. März 2007 16:32

Kennt ihr das Problem?

Unsere Onlinehilfe sagt zu DecimalPlaces so schön:

For decimal fields, use this setting to specify the number of decimal places you want the system to store.


Ich verstehe darunter: Gilt für ein Tabellenfeld vom Typ Decimal DecimalPlaces=0:6, dann werden auch maximal 6 Nachkommastellen gespeichert.

Tatsächlich scheint es so, als würden ALLE Nachkommstellen gespeichert werden und das DecimalPlaces gaukelt uns über Strg+F8 nur vor, es gäbe 6 Stellen.
Dies habe ich eben beim Debuggen feststellen müssen. Dort wird in etwa folgender Quelltext durchlaufen:

Code:
DecVariable := 0;
DecVariable := RecordXY.Decimalfeld;


RecordXY.Decimalfeld enthält laut Debugger 0,123456.
Nach der Zuweisung steht aber in DecVariable 0,1234567.

Wer weiß mehr dazu? Ist das so gewollt? Oder ist das ein Fehler?
Zuletzt geändert von Natalie am 22. März 2007 16:44, insgesamt 1-mal geändert.

22. März 2007 16:35

wenn du manuell Zahlen eingibst, werden die nach 6 Stellen gerundet.
vorhandene Werte werden durch dieses Property aber nicht geändert.

22. März 2007 16:39

Heißt manuell wirklich nur über eine Form?
In diesem Fall handelt es sich um eine Chargenmenge. Diese wurde durch einfache Division ermittelt (daher die vielen Nachkommastellen) und in der Tabelle Reservation Entry gespeichert.

Heißt das, dass alle so entstandenen Posten in Wirklichkeit einen ganz anderen Wert haben, als wir glauben? Wie gesagt, ein Blick in die Tabelle oder über Strg+F8 kürzt den Wert immer auf die DecimalPlaces; wie soll ich da als Anwender die Werte richtig kontrollieren können??

22. März 2007 16:42

Toll! Der Application Designer's Guide drückt den Sachverhalt ganz anders aus:

C/SIDE contains the following field properties: [...]
DecimalPlaces set the number of decimal places shown to the user. This property also performs validation of whether user input conforms to this setting.


OK, Thema erledigt, denke ich....