![]() |
Rounding Up
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 |
Re: Rounding Up
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" <brent@hitechseals.com> wrote in message news:47db01c340db$5ae0e710$a401280a@phx.gbl... > 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 |
Re: Rounding Up
"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. |
Re: Rounding Up
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) |
Re: Rounding Up
"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. |
| All times are GMT. The time now is 08:37 AM. |
Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.