×

Good News Everybody!

The new search engine is LIVE!

Please report any problems to david (at) 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





This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2026 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.