aproximate a number

B

billiejoex

Hi all. I'd need to aproximate a given float number into the next (int)
bigger one. Because of my bad english I try to explain it with some example:

5.7 --> 6
52.987 --> 53
3.34 --> 4
2.1 --> 3

Regards
 
R

rafi

billiejoex said:
Hi all. I'd need to aproximate a given float number into the next (int)
bigger one. Because of my bad english I try to explain it with some example:

5.7 --> 6
52.987 --> 53
3.34 --> 4
2.1 --> 3

Regards

math.ceil returns what you need but as a float, then create an int
13

hth
 
W

Will McGugan

billiejoex said:
Hi all. I'd need to aproximate a given float number into the next (int)
bigger one. Because of my bad english I try to explain it with some example:

5.7 --> 6
52.987 --> 53
3.34 --> 4
2.1 --> 3

Have a look at math.ceil
6.0


Will McGugan
 
E

Erik Max Francis

billiejoex said:
Hi all. I'd need to aproximate a given float number into the next (int)
bigger one. Because of my bad english I try to explain it with some example:

5.7 --> 6
52.987 --> 53
3.34 --> 4
2.1 --> 3

Probably something like int(number + 0.99999999), depending on the
boundary cases you want (which you haven't mentioned here. Technically,
it should be int(number + 1.0 - epsilon).
 
M

Michael Sparks

billiejoex said:
Hi all. I'd need to aproximate a given float number into the next (int)
bigger one. Because of my bad english I try to explain it with some
example:

5.7 --> 6
52.987 --> 53
3.34 --> 4
2.1 --> 3

What about 2.0? By your spec that should be rounded to 3 - is that what you
intend?

If you do, you can simply do this:

def approx(x):
return int(x+1.0)

Regards,


Michael.
 
M

Mikael Olofsson

Michael said:
def approx(x):
return int(x+1.0)

I doubt this is what the OP is looking for.
4

Others have pointed to math.ceil, which is most likely what the OP wants.

/Mikael Olofsson
Universitetslektor (Senior Lecturer [BrE], Associate Professor [AmE])
Linköpings universitet
 
P

Peter Hansen

Mikael said:
I doubt this is what the OP is looking for. ....
Others have pointed to math.ceil, which is most likely what the OP wants.

I agree that's "likely" but, as Michael pointed out in the text you
removed, his version does do what the OP's spec states, when interpreted
literally. Very likely there's a language issue involved, and Michael
was aware of that as well, I'm sure.

Still, others had already posted on math.ceil(), so Michael was just
trying to make sure that the OP realized his specification was
inadequate and -- just in case he wanted something other than math.ceil
-- he provided a valid alternative.

-Peter
 
T

Thomas Bartkus

Hi all. I'd need to aproximate a given float number into the next (int)
bigger one. Because of my bad english I try to explain it with some example:

5.7 --> 6
52.987 --> 53
3.34 --> 4
2.1 --> 3

The standard way to do this is thus:

def RoundToInt(x):
""" Round the float x to the nearest integer """
return int(round(x+0.5))

x = 5.7
print x, '-->', RoundToInt(x)
x = 52.987
print x, '-->', RoundToInt(x)
x = 3.34
print x, '-->', RoundToInt(x)
x = 2.1
print x, '-->', RoundToInt(x)

5.7 --> 6
52.987 --> 53
3.34 --> 4
2.1 --> 3
 
D

Devan L

Thomas said:
The standard way to do this is thus:

def RoundToInt(x):
""" Round the float x to the nearest integer """
return int(round(x+0.5))

x = 5.7
print x, '-->', RoundToInt(x)
x = 52.987
print x, '-->', RoundToInt(x)
x = 3.34
print x, '-->', RoundToInt(x)
x = 2.1
print x, '-->', RoundToInt(x)

5.7 --> 6
52.987 --> 53
3.34 --> 4
2.1 --> 3

RoundToInt(2.0) will give you 3.
 
D

Devan L

Grant said:
That's what the OP said he wanted. The next bigger integer
after 2.0 is 3.

It's not really clear whether he wanted it to round up or to go to the
next biggest integer because he says he has bad english. I can't think
of a particular use of returning the next bigger integer.
 
G

Grant Edwards

It's not really clear whether he wanted it to round up or to go to the
next biggest integer because he says he has bad english. I can't think
of a particular use of returning the next bigger integer.

You're probably right. I suspect what he really wants is

i = int(math.ceil(x))
 
B

billiejoex

I wanted the round up the number (5.0 = 5.0, not 6.0.). The ceil funciotn is
the right one for me.
Thanks to all.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top