rounding numbers (easy but you have to know it)
Author Message
rounding numbers (easy but you have to know it)

Hi,

I would like to use a function that rounds numbers but like this :

12.4 = 13
12.1 =13
12.9 = 13

and not

12.1 =12

Anyone a clue?

Fri, 26 Dec 2003 21:49:13 GMT
rounding numbers (easy but you have to know it)
Maybe Int(Value + .9). Assuming you only have one decimal place in your
number. (meaning 12.01 won't work out to 13)

Quote:
> Hi,

> I would like to use a function that rounds numbers but like this :

> 12.4 = 13
> 12.1 =13
> 12.9 = 13

> and not

> 12.1 =12

> Anyone a clue?

Fri, 26 Dec 2003 22:18:22 GMT
rounding numbers (easy but you have to know it)
Marc,

Int( n + 1 )

HTH,
Phill  W.

Quote:
> Hi,

> I would like to use a function that rounds numbers but like this :

> 12.4 = 13
> 12.1 =13
> 12.9 = 13

> and not

> 12.1 =12

> Anyone a clue?

Fri, 26 Dec 2003 22:16:44 GMT
rounding numbers (easy but you have to know it)
go to  http://groups.google.com/ and in the serach, type in VB Round Up and
you'll get about 6,500 ways to do it

Quote:
> Maybe Int(Value + .9). Assuming you only have one decimal place in your
> number. (meaning 12.01 won't work out to 13)

> > Hi,

> > I would like to use a function that rounds numbers but like this :

> > 12.4 = 13
> > 12.1 =13
> > 12.9 = 13

> > and not

> > 12.1 =12

> > Anyone a clue?

Fri, 26 Dec 2003 22:22:14 GMT
rounding numbers (easy but you have to know it)
Then 12 will round to 13 - maybe not what he wants

Quote:
> Marc,

> Int( n + 1 )

> HTH,
>     Phill  W.

> > Hi,

> > I would like to use a function that rounds numbers but like this :

> > 12.4 = 13
> > 12.1 =13
> > 12.9 = 13

> > and not

> > 12.1 =12

> > Anyone a clue?

Fri, 26 Dec 2003 22:28:33 GMT
rounding numbers (easy but you have to know it)
The correct answer has to do with what you want done with negative numbers. If you don't
care about them, or if  you want them treated "normally" (i.e., -2.22 rounds to -2), then

If x <> Int(x) Then
x= 1 + Int(x)
End If

But if you expect negative numbers to become more negative (i.e., -2.22 rounding to -3
mirroring the fact that 2.22 rounds to 3), then you will need to use this instead

If x <> Int(d) Then
x = Sgn(x) * (Abs(Fix(x)) + 1)
End If

By the way, it anyone is looking for simple, one-line solutions for the above, then the
first group of statement could be written as

x = Int(x) + 1 + (x = Int(x))

and the second group of statements like this

x = Sgn(x) * (Abs(Fix(x)) + 1 + (x = Int(x)))

to translate the logic directly, or these also work. The first is by Joe Foster and is
faster (but uglier in my opinion <g>) than the second (which is by me)

x = -Int(-Abs(x)) * Sgn(x)

or

x = Fix(x) + Sgn(x - Fix(x))

While these one-liners are "neat", they do tend to "hide" the logic of the operation a
little. I prefer the one-liners myself, but you should use whatever you are comfortable
with.

Rick

Quote:
> Hi,

> I would like to use a function that rounds numbers but like this :

> 12.4 = 13
> 12.1 =13
> 12.9 = 13

> and not

> 12.1 =12

> Anyone a clue?

-----= Posted via Newsfeeds.Com, Uncensored Usenet News =-----
http://www.newsfeeds.com - The #1 Newsgroup Service in the World!
-----==  Over 80,000 Newsgroups - 16 Different Servers! =-----

Fri, 26 Dec 2003 22:38:23 GMT
rounding numbers (easy but you have to know it)
The correct answer has to do with what you want done with negative numbers. If you don't
care about them, or if  you want them treated "normally" (i.e., -2.22 rounds to -2), then

If x <> Int(x) Then
x= 1 + Int(x)
End If

But if you expect negative numbers to become more negative (i.e., -2.22 rounding to -3
mirroring the fact that 2.22 rounds to 3), then you will need to use this instead

If x <> Int(d) Then
x = Sgn(x) * (Abs(Fix(x)) + 1)
End If

By the way, it anyone is looking for simple, one-line solutions for the above, then the
first group of statement could be written as

x = Int(x) + 1 + (x = Int(x))

and the second group of statements like this

x = Sgn(x) * (Abs(Fix(x)) + 1 + (x = Int(x)))

to translate the logic directly, or these also work. The first is by Joe Foster and is
faster (but uglier in my opinion <g>) than the second (which is by me)

x = -Int(-Abs(x)) * Sgn(x)

or

x = Fix(x) + Sgn(x - Fix(x))

While these one-liners are "neat", they do tend to "hide" the logic of the operation a
little. I prefer the one-liners myself, but you should use whatever you are comfortable
with.

Rick

Quote:
> Hi,

> I would like to use a function that rounds numbers but like this :

> 12.4 = 13
> 12.1 =13
> 12.9 = 13

> and not

> 12.1 =12

> Anyone a clue?

-----= Posted via Newsfeeds.Com, Uncensored Usenet News =-----
http://www.newsfeeds.com - The #1 Newsgroup Service in the World!
-----==  Over 80,000 Newsgroups - 16 Different Servers! =-----

Fri, 26 Dec 2003 22:40:40 GMT
rounding numbers (easy but you have to know it)
14.6 will then = 15 and not 14

MOD 1 might work (it worth a try)

--
www.kirogl.co.uk

Quote:
> Marc,

> Int( n + 1 )

> HTH,
>     Phill  W.

> > Hi,

> > I would like to use a function that rounds numbers but like this :

> > 12.4 = 13
> > 12.1 =13
> > 12.9 = 13

> > and not

> > 12.1 =12

> > Anyone a clue?

Sat, 27 Dec 2003 04:37:37 GMT
rounding numbers (easy but you have to know it)
: 14.6 will then = 15 and not 14

: MOD 1 might work (it worth a try)

:> > 12.1 =13
:> > 12.9 = 13

Given the specs, I'd say Int(n + 1) does it...

he doesn't want it to equal 14.

--
Ben Garrison * cs1322 TA / ProgDev * www.bengarrison.net
\ Ecclesiastes 11:5  As you do not know the path of the wind, or how
\ the body is formed in a mother's womb, so you cannot understand the
\ work of God, the Maker of all things.

Sat, 27 Dec 2003 04:53:40 GMT
rounding numbers (easy but you have to know it)

Quote:

> Hi,

> I would like to use a function that rounds numbers but like this :

> 12.4 = 13
> 12.1 =13
> 12.9 = 13

> and not

> 12.1 =12

> Anyone a clue?

To round up, so 12.9 becomes 13 but -12.9 becomes -12:

x = -int(-x)

To round away from zero, so -12.9 becomes -13 instead of -12:

x = -int(-abs(x)) * sgn(x)

You might also want to add an offset, since even though 12.00000000000001
will display as 12, either of those expressions above will turn it into
13, giving you something more like these:

x = -int(0.00001 - x)

or

x = -int(0.00001 - abs(x)) * sgn(x)

--

WARNING: I cannot be held responsible for the above        They're   coming  to
because  my cats have  apparently  learned to type.        take me away, ha ha!

Sat, 27 Dec 2003 08:14:28 GMT
rounding numbers (easy but you have to know it)
Maybe try this...

N = Fix(N + 0.999999999)

...which is the same as...

N = Sgn(N + 0.999999999) * Int(Abs(N + 0.999999999))

12.1 returns 13
-12.1 returns -11

BTW, if the number is something like 12.0000000001 then it doesn't
deserve to be rounded up ;-)

Quote:

> Hi,

> I would like to use a function that rounds numbers but like this :

> 12.4 = 13
> 12.1 =13
> 12.9 = 13

> and not

> 12.1 =12

> Anyone a clue?

Sat, 27 Dec 2003 12:39:11 GMT
rounding numbers (easy but you have to know it)
Okay... I could have sworn there was a round function as well... I'm not
on a computer with VB on it right now, but I think I saw it used in VB6
a
few days ago...

-Joachim

Quote:

> Hi,

> I would like to use a function that rounds numbers but like this :

> 12.4 = 13
> 12.1 =13
> 12.9 = 13

> and not

> 12.1 =12

> Anyone a clue?

Tue, 13 Jan 2004 11:26:02 GMT
rounding numbers (easy but you have to know it)
Wasn't this message from many weeks ago?--
--Our battle is complete. You were a stimulating opponent.

Quote:
> Okay... I could have sworn there was a round function as well... I'm not
> on a computer with VB on it right now, but I think I saw it used in VB6
> a
> few days ago...

> -Joachim

> > Hi,

> > I would like to use a function that rounds numbers but like this :

> > 12.4 = 13
> > 12.1 =13
> > 12.9 = 13

> > and not

> > 12.1 =12

> > Anyone a clue?

Tue, 13 Jan 2004 11:27:26 GMT

 Page 1 of 1 [ 13 post ]

Relevant Pages