×
The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.
You could also use the ceil() function in C.
kurt.anderson@xxxxxxxxxxxxxx 02/27/2009 3:08:42 PM >>>
Hi Lance,
Here's a quick & dirty program. There may be a better way, but this
is
what my brainstorm came up with. The variable intVal is the result
you'll want.
d intVal S 3i 0
d value S 5p 2
/free
value = 2 * 1.01;
intVal = %int( value );
If value > intVal;
intVal += 1;
EndIf;
*inlr = *on;
/end-free
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Lance Gillespie
Sent: Friday, February 27, 2009 4:39 PM
To: rpg400-l@xxxxxxxxxxxx
Subject: Rounding up
I have a situation where I need my results rounded up if they are not
exact.
As in:
2 * 1.01 = 3
2 * 1.50 = 3
2 * 1.51 = 4
The source and target numbers are 7,0 and the factor is a constant.
I thought:
target = %dech(source * 1.01) : 7 : 0)
or maybe
target = %dech(source * 1.01) : 9 : 2)
would do it, but no joy.
I suppose I could do the calcs twice with %dec, once to a 7,0 result
and
once to a 9,2 result
(assuming %dec truncates) and then add one to the 7,0 result if the
two
are not equal, but
I would rather not.
Is there some way to force these calcs to round up if not exact?
Thanks,
Lance
As an Amazon Associate we earn from qualifying purchases.