|
EVAL(R) was just an attempt, as I couldn't find any other documentation that would allow me to do it. I have a 9,5 field divided by a (9,5 field/2000) so the result could have a large number of decimals, I do not have to display this. This is a cost per ton so the field only needs to go out 2 decimal places. I keep getting the target error and am assuming it is because my result field is also 9,5? You are saying the eval shouldn't bomb and should drop the decimals? Once I created a work field of 25,21 I had no issues, then moved this field to my display field of 9,5. So I believe dropping the decimals greated than the 5th position must have been a problem. Angela Wawrzaszek IT Supervisor Nucor Steel Auburn (315) 258-4205 awawrzaszek@xxxxxxxxxxxxxxx -----Original Message----- From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Scott Klement Sent: Friday, July 01, 2005 2:07 PM To: RPG programming on the AS400 / iSeries Subject: Re: The target for a numeric operation is too small to hold the result > How do I get around this error using the eval statement? I DO NOT want > to make the field bigger, I just want to truncate the extra decimals. Huh? Do you mean that you want to truncate the extra digits? Truncating extra decimals is not necessary, it happens automatically. For example, the following code won't receive any errors, in spite of the fact that it drops a decimal place: D A s 5P 1 D B s 5P 1 /free a = 0.5; b = a / 2; > It is a complex equation, which I then push the result to a display > field, so to determine the max field size will be difficult, plus I > then have to move the 'temp' field to a display field. If the max field size is a really big issue for you and you don't care about losing accuracy (which is very unsual for an RPG programmer, I might add!) you might consider using floating point fields. They allow for extremely huge numbers or extremely low numbers without a need to know ahead of time how many digits/decimals are needed. The drawback is that they can lose accuracy. The result will be close, but might not be exact. Since you're not worried about digits being lost, I assume that you don't care if your result is exact -- so this might be a good solution. > I just want to ignore the extra decimals! I tried eval(r) also and > still get the same errors I don't understand what eval(r) has to do with your question. Are you having trouble with an intermediate result? If that's the case, you could try using %DEC() to control the intermediate result size.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.