-
Dezimalstellen abschneiden
hallo,
folgende Merkwürdigkeit:
D refe1 ...... s ... 20 8
D bigewi .... s ...... 5 2
D grammh .. s ...... 4 0
D biistbrt ... s ...... 3 0
D bibrut ..... s ...... 6 2
eval(h) ref1 = (bigewi * 1000 - grammh) / (biistbrt / 100) / bibrut;
Bei der Umwandlung wird als Fehlermeldung gebracht:
*RNF7551 10 Ergebnis der numerischen Operation wird auf 0 Dezimalstellen abgeschnitten
Das verstehe ich nicht, das Ergebisfeld ist doch groß genug !?
mfg. Ludger
-
Hallo Ludger,
die Zuweisung hat die niedrigste Priorität, das heißt es wird zuerst der Ausdruck der rechten Seite berechnet und dabei werden Zwischenvariablen angelegt, die der Compiler nach einem Regelwerk (für das ich mich nicht interessieren möchte!!!) angelegt. Du hast zwei Möglichkeiten: Du kannst Dich mit dem Regelwerk befassen, und wenn Du es noch komplizierter haben willst mit irgendwelchen Modifiern dieses auch noch verändern, oder Du legst die Zwischenvariablen selber an und rechnest in Einzelschritten, dann wird so gerundet, wie Du es hinschreibst.
mfg
Dieter Bender
 Zitat von loeweadolf
hallo,
folgende Merkwürdigkeit:
D refe1 ...... s ... 20 8
D bigewi .... s ...... 5 2
D grammh .. s ...... 4 0
D biistbrt ... s ...... 3 0
D bibrut ..... s ...... 6 2
eval(h) ref1 = (bigewi * 1000 - grammh) / (biistbrt / 100) / bibrut;
Bei der Umwandlung wird als Fehlermeldung gebracht:
*RNF7551 10 Ergebnis der numerischen Operation wird auf 0 Dezimalstellen abgeschnitten
Das verstehe ich nicht, das Ergebisfeld ist doch groß genug !?
mfg. Ludger
-
Hallo Dieter, vielen Dank für die samstagabendliche schnelle Antwort.
Ich hatte gehofft, mit EVAL die Einzelschritte
(so wie früher üblich) mir ersparen zu können.
Es sieht leider nicht so aus.
mfg. Ludger
-
Das Thema ist hier schon behandelt:
http://www.rlpforen.de/showthread.php?t=5009
Nimm einfach "eval(r)", das funktioniert meistens.
-
Hallo Baldur,
danke für den Hinweis auf den Link.
Ich werde es mal probieren mit eval(rh)
mfg. Ludger
-
eval(h) ist uninteressant (h=halfadjust) betrifft nur geradzahlige Stellenanzahl, eval(r) (r=round) reicht da aus.
PS:
Konstanten kann man auch mit Nachkomma definieren z.B. "100,000" !
Similar Threads
-
By kuempi von stein in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 16-10-06, 12:39
-
By Kassandra in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 17-11-03, 14:12
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks