Velocity Reviews > Rounding Up

# Rounding Up

Brent Bortnick
Guest
Posts: n/a

 07-02-2003
Is there a way to make your numbers always round up. Ex:
if the number is 0.0341 it will round to 0.035

Brent

Aaron Bertrand - MVP
Guest
Posts: n/a

 07-02-2003
If you always want it at the thousandths, you could say:

<%
function roundUp(n)
if clng(n*10000) = 10 * clng(n*1000) then
n = formatnumber(n, 3)
else
n = formatnumber(n + 0.0005, 3)
end if
roundup = n
end function

response.write "<br>" & roundUp(0.0341)
response.write "<br>" & roundUp(0.03409)
response.write "<br>" & roundUp(0.0340)
response.write "<br>" & roundUp(0.0359)

%>

"Brent Bortnick" <(E-Mail Removed)> wrote in message
news:47db01c340db\$5ae0e710\$(E-Mail Removed)...
> Is there a way to make your numbers always round up. Ex:
> if the number is 0.0341 it will round to 0.035
>
> Brent

Dave Anderson
Guest
Posts: n/a

 07-02-2003
"Brent Bortnick" wrote:
>
> Is there a way to make your numbers always round up. Ex:
> if the number is 0.0341 it will round to 0.035

JScript:
val = Math.ceil(1000*val)/1000
http://msdn.microsoft.com/library/en...6jsmthceil.asp

VBScript (depends on how you want to handle negative numbers):
If val*1000 <> Fix(val*1000) Then val = Fix(val*1000+1)/1000
If val*1000 <> Int(val*1000) Then val = Int(val*1000+1)/1000
http://msdn.microsoft.com/library/en...l/vsfctint.asp

Of course, both methods introduce you to the problem of representing
decimals with binary digits. See this for details:
http://support.microsoft.com/default...;EN-US;q244699

You can opt for string representations of those numbers with either of the
following.

JScript:
http://msdn.microsoft.com/library/en...mthtofixed.asp

VBScript:
http://msdn.microsoft.com/library/en...rmatNumber.asp

--
Dave Anderson

Unsolicited commercial email will be read at a cost of \$500 per message. Use
of this email address implies consent to these terms. Please do not contact
me directly or ask me to contact you directly for assistance. If your
question is worth asking, it's worth posting.

Evertjan.
Guest
Posts: n/a

 07-02-2003
Aaron Bertrand - MVP wrote on 02 jul 2003 in
microsoft.public.inetserver.asp.general:

> If you always want it at the thousandths, you could say:
>
> <%
> function roundUp(n)
> if clng(n*10000) = 10 * clng(n*1000) then
> n = formatnumber(n, 3)
> else
> n = formatnumber(n + 0.0005, 3)
> end if
> roundup = n
> end function
>
> response.write "<br>" & roundUp(0.0341)
> response.write "<br>" & roundUp(0.03409)
> response.write "<br>" & roundUp(0.0340)
> response.write "<br>" & roundUp(0.0359)
>
> %>
>

Or:

function roundUp(n)
n = int(n*1000+0.999999)/1000
roundup = formatnumber(n, 3)
end function

--
Evertjan.
The Netherlands.
(Please change the x'es to dots in my emailaddress)

Dave Anderson
Guest
Posts: n/a

 07-02-2003
"Aaron Bertrand - MVP" wrote:
>
> if clng(n*10000) = 10 * clng(n*1000) then
> n = formatnumber(n, 3)
> else
> n = formatnumber(n + 0.0005, 3)
> end if

CLng uses Banker's rounding, so it's wise to avoid in an ALWAYS up/down
scenario. Compare the following with this function:

roundUp(0.00105) --> 0.001
roundUp(0.00106) --> 0.002

http://support.microsoft.com/default...;EN-US;Q196652

--
Dave Anderson

Unsolicited commercial email will be read at a cost of \$500 per message. Use
of this email address implies consent to these terms. Please do not contact
me directly or ask me to contact you directly for assistance. If your
question is worth asking, it's worth posting.

 Thread Tools

 Posting Rules You may not post new threads You may not post replies You may not post attachments You may not edit your posts BB code is On Smilies are On [IMG] code is On HTML code is OffTrackbacks are On Pingbacks are On Refbacks are Off Forum Rules

 Similar Threads Thread Thread Starter Forum Replies Last Post Thor W Hammer ASP .Net 2 11-22-2005 06:51 PM valentin tihomirov VHDL 2 02-16-2004 10:07 AM walala VHDL 12 09-14-2003 03:49 PM C ASP .Net 2 08-25-2003 03:24 PM iksrazal Java 1 07-03-2003 07:02 PM

Advertisments