-
Das Ziel für eine numerische Operation ist zu klein.....
Hallo allerseits,
wieder einmal eine Frage von mir, da ich nicht mehr ganz durchblicke.
In einem Programm habe ich eine Variable definiert:
Dieser Variablen soll ein Teilstring zugewiesen werden:
Code:
rwl_vkd = %dec(%subst(DIUEB:1:4):4:2);
Die Variable DIUEB hat eine Länge von 50 und ist ein Alphafeld.
Warum bekomme ich hier immer die Meldung:
Das Ziel für eine numerische Operation ist zu klein, um
das Ergebnis aufzunehmen.
Ursache . . . . : Eine Rechenoperation hatte einen Wert zur Folge, der für
das Ziel zu groß ist. Handelt es sich um einen numerischen Ausdruck, könnte
der Überlauf das Ergebnis der Berechnung eines Zwischenergebnisses sein.
Fehlerbeseitigung: Entweder das Ziel der Operation vergrößern oder, falls es
sich um einen Ausdruck handelt, die Genauigkeit der Operanden in dem
Ausdruck so definieren, daß der Zwischenwert in das Zwischenergebnis paßt.
Ich habe auch schon versucht die Variable rwl_vkd so zu definieren
-> gleiches Ergebnis.
Was mache ich hier falsch?
Danke schon mal für eure Hilfe.
LG
Franz
-
Du definierst ein Dezimalfeld mit 2 Vorkomma und 2 Nachkomma.
Also muss dein Zeichenfeld einen Wert mit "XX,YY" enthalten.
Tut er das nicht, kommt der Überlauffehler.
-
ich würde es so lösen:
rwl_vkd = %dec((%subst(DIUEB:1:4)/100):4:2);
kf
-
rwl_vkd = %dec(%subst(DIUEB:1:4):4:2)/100
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Danke, aber bei der Lösung von camouflage gibt er beim Umwandeln schon eine Meldung über Typenunverträglichkeit aus und bei der von Robi kommt erneut die Meldung.
-
@fuerchau
Dann müsste ich also zuerst ein 4/0 Feld nehmen und dieses in ein 4/2 rechnen?
Oder aber das Textfeld gleich mit xx,xx vorbelegen?
-
Was stehen denn definitiv in der Variablen?
%dec('1234':4:0) / 100.0
sollte funktionieren.
Die "100.0" sind ggf. erforderlich damit keine Integer-Division angewandt wird.
-
Ich habe es jetzt so gelöst, dass ich das Feld mit 01,00 vorbelege und danach %dec(%subst(DIUEB:1:5)4:2); -> und siehe da es funktioniert.
Danke nochmal an alle.
LG
Franz
-
@fuerchau
genauso hat es jetzt funktioniert. Danke nochmal
-
Das Problem kann dann noch mal das Dezimalkomma werden falls du mal mit Dezimalpunkt arbeitest.
Immer daran denken woher die Daten im Endeffekt kommen.
Similar Threads
-
By Isabella Pridat-Zapp in forum Archiv NEWSboard Events
Antworten: 0
Letzter Beitrag: 10-09-15, 12:50
-
By hartmuth in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 02-05-14, 08:42
-
By msost in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 09-01-14, 15:59
-
By awellen in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 05-05-03, 09:44
-
By cicero22 in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 22-04-03, 20:03
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