Lele said:
The Excel Roundup Function is very handy and I would like to use it in
Access, but so far have only discovered the Round function. There are
certain times, I want my computations to round up to the next whole number
despite what traditional rounding produces. Can I make this happen in Access?
Any help is greatly appreciated.
This will probably be more help than you want.
Take a look at:
http://groups.google.com/group/microsoft.public.access/msg/9614be58d0485dd0
That's enough if you don't need the decimal case. I just finished
looking at the O97 Excel help file entry for ROUNDUP. I'll repeat it
here for reference:
'-----------------Begin Quote-----------------
ROUNDUP
Rounds a number up, away from 0 (zero).
Syntax
ROUNDUP(number,num_digits)
Number is any real number that you want rounded up.
Num_digits is the number of digits to which you want to round number.
Remarks
· ROUNDUP behaves like ROUND, except that it always rounds a number up.
· If num_digits is greater than 0 (zero), then number is rounded up to
the specified number of decimal places.
· If num_digits is 0 or omitted, then number is rounded up to the
nearest integer.
· If num_digits is less than 0, then number is rounded up to the left of
the decimal point.
Examples
ROUNDUP(3.2,0) equals 4
ROUNDUP(76.9,0) equals 77
ROUNDUP(3.14159, 3) equals 3.142
ROUNDUP(-3.14159, 1) equals -3.2
ROUNDUP(31415.92654, -2) equals 31,500
'-----------------End Quote-----------------
The full functionality might be something like:
ROUNDUP(X, I) = - Int( - X * 10 ^ I) / 10 ^ I
But ROUNDUP(-3.14159, 1) gives -3.1 instead of -3.2 so try:
Public Function RoundUp(X As Double, I As Integer) As Double
RoundUp = -Sgn(X) * Int(-Sgn(X) * X * 10 ^ I) / 10 ^ I
End Function
The Sgn(X) essentially treats X as positive for the calculation, then
adjusts the sign.
'or omitted':
Public Function RoundUp(X As Double, Optional I As Integer) As Double
If IsMissing(I) Then
RoundUp = -Int(-X)
Else
RoundUp = -Sgn(X) * Int(-Sgn(X) * X * 10 ^ I) / 10 ^ I
End If
End Function
You should test this more than I have before using this Excel function
clone. Making Crystal's idea work for the general case is a little more
difficult. I'll give it a shot though.
James A. Fortune
(e-mail address removed)