|
Sure Greg
using your example
Say I want to round 1461 to the NEAREST thousand, which would be
1.
So N is 1461 and S = 1000
Temp = 1461 + 1000/2
Temp = 1461 + 500
Temp = 1961
Result = (1961/1000) * 1000
Result = 1
Dont forget the field RESULT is an integers - NO decimal places.
Another example
Say I want to round 1561 to the NEAREST thousand, which would be
2.
So N is 1561 and S = 1000
Temp = 1561 + 1000/2
Temp = 1561 + 500
Temp = 2061
Result = (2061/1000) * 1000
Result = 2
Alan Shore
NBTY, Inc
(631) 244-2000 ext. 5019
AShore@xxxxxxxx
"Fleming, Greg
(ED)"
<GFLEMING@evergla To
desdirect.com> "RPG programming on the AS400 /
Sent by: iSeries" <rpg400-l@xxxxxxxxxxxx>
rpg400-l-bounces@ cc
midrange.com
Subject
RE: Rounding up to nearest 1000
11/10/2006 03:03
PM
Please respond to
RPG programming
on the AS400 /
iSeries
<rpg400-l@midrang
e.com>
Alan,
Now I'm really confused. What does it do ? Can you walk one through
like I was trying to do ? I my example, it rounded neither up nor down,
nor round for that matter. The result seemed to be 1961. How is that
any "rounder" than the input value of 1461 ? And how can the last line
of the equation ever make any sense; it just divides by a value and
multiplies right back by the same value, resulting in the same thing you
started with... ?
What am I missing here ?
Greg
|-----Original Message-----
|From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx]
|On Behalf Of Alan Shore
|Sent: Friday, November 10, 2006 2:51 PM
|To: RPG programming on the AS400 / iSeries
|Subject: RE: Rounding up to nearest 1000
|
|
|Greg - this rounding algorithm is for rounding to the nearest whatever.
|NOT rounding UP to the nearest whatever.
|
|
|
|Alan Shore
|
|NBTY, Inc
|(631) 244-2000 ext. 5019
|AShore@xxxxxxxx
|
|
|
|
||The rounding algorithm goes something like this:
||
||Let N be the number to round, S be the scale of the rounding (in this
||example S = 1000)
||1) temp = N + S/2
||2) result = (temp / S) * S
||
||I think this has to use 'integer division' to work.
||
||This is essentially what the H extender is about - hence the name -
||"(H)alf add".
||
||HTH,
||Adam
|
|Adam,
|
|I'm trying that out using my trusty calculator, and I'm not ending up
|with a round number.
|
|Say I want to round 1461 up to the nearest thousand, which would be
|2000.
|So N is 1461 and S = 1000
|
|Temp = 1461 + 1000/2
|Temp = 1461 + 500
|Temp = 1961
|Result = (1961/1000) * 1000
|Result = 1961 ?
|
|Did I do something wrong ?
|
|Greg
|
--
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 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.