468,321 Members | 1,849 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 468,321 developers. It's quick & easy.

how to convert an integer to a float?

Hi, I have the following functions, but ' dx = abs(i2 - i1)/min(i2,
i1)' always return 0, can you please tell me how can i convert it from
an integer to float?
def compareValue(n1, n2):
i1 = int(n1)
i2 = int(n2)

dx = abs(i2 - i1)/min(i2, i1)
print dx
return dx < 0.05

Feb 28 '07 #1
10 107008
On Feb 27, 7:05 pm, "ying...@gmail.com" <ying...@gmail.comwrote:
Hi, I have the following functions, but ' dx = abs(i2 - i1)/min(i2,
i1)' always return 0, can you please tell me how can i convert it from
an integer to float?

def compareValue(n1, n2):
i1 = int(n1)
i2 = int(n2)

dx = abs(i2 - i1)/min(i2, i1)
print dx
return dx < 0.05
x = x + 0.0

Feb 28 '07 #2
yi*****@gmail.com wrote:
Hi, I have the following functions, but ' dx = abs(i2 - i1)/min(i2,
i1)' always return 0, can you please tell me how can i convert it from
an integer to float?
When two integers are involved in a division, the result will also be a
division. If one of the operands is a float, then the result will be a
float instead. So try casting one of the values to a float before
performing the division:

dx = float(abs(i2 - i1))/min(i2, i1)

-Farshid
Feb 28 '07 #3
Farshid Lashkari wrote:
When two integers are involved in a division, the result will also be a
division.
My bad, I meant the result will also be an *integer*

-Farshid
Feb 28 '07 #4
yinglcs, you can use float() or the new division:
>>1 / 2
0
>>1 / float(2)
0.5
>>from __future__ import division
1 / 2
0.5

Bye,
bearophile

Feb 28 '07 #5
On Feb 27, 4:05 pm, "ying...@gmail.com" <ying...@gmail.comwrote:
Hi, I have the following functions, but ' dx = abs(i2 - i1)/min(i2,
i1)' always return 0, can you please tell me how can i convert it from
an integer to float?

def compareValue(n1, n2):
i1 = int(n1)
i2 = int(n2)

dx = abs(i2 - i1)/min(i2, i1)
print dx
return dx < 0.05
dx = float(abs(i2 -i1))/min(i2, i1)

Or you could just put "from __future__ import division" at the top of
your file.

see http://www.python.org/dev/peps/pep-0238/ for details.

-Matt

Feb 28 '07 #6
yi*****@gmail.com wrote:
def compareValue(n1, n2):
i1 = int(n1)
i2 = int(n2)

dx = abs(i2 - i1)/min(i2, i1)
print dx
return dx < 0.05
You could also prepend

from __future__ import division

Regards,
Björn

--
BOFH excuse #237:

Plate voltage too low on demodulator tube

Feb 28 '07 #7
On 2007-02-28, jeff <je****************@gmail.comwrote:
On Feb 27, 7:05 pm, "ying...@gmail.com" <ying...@gmail.comwrote:
>Hi, I have the following functions, but ' dx = abs(i2 - i1)/min(i2,
i1)' always return 0, can you please tell me how can i convert it from
an integer to float?

def compareValue(n1, n2):
i1 = int(n1)
i2 = int(n2)

dx = abs(i2 - i1)/min(i2, i1)
print dx
return dx < 0.05

x = x + 0.0
How, um, perlesque.

I rather think that this is a bit more pythonic:

x = float(x)

--
Grant Edwards grante Yow! I'm a fuschia bowling
at ball somewhere in Brittany
visi.com
Feb 28 '07 #8
Please don't top-post; instead, reply below the lines you're
responding to, and trim any irrelevant lines from the original.

Subscriber123 <su***********@gmail.comwrites:
How did the new division ever get approved?!
By being introduced as a PEP, which is now numbered PEP 238.

<URL:http://www.python.org/dev/peps/pep-0238/>
That's not pythonic! What if you then need to divide two integers
and find an element in a list or dict?
Then your code is dependent on ambiguous behaviour which has changed
in newer Python versions.

As described in the above document, the '//' operator will
unambiguously request floor division, even in older versions of
Python.
I know that at the moment it is not implemented unless imported from
__future__, but I expect that it eventually might be.
Please read PEP 238 to see the implementation plan.
That would be a problem with backwards compatibility.
The older Python versions aren't going away. Anyone who wants their
old code to work with new versions of Python has a responsibility to
see what parts of their code need to be updated.

--
\ "My roommate got a pet elephant. Then it got lost. It's in the |
`\ apartment somewhere." -- Steven Wright |
_o__) |
Ben Finney

Feb 28 '07 #9
<yi*****@gmail.comwrote in message
news:11**********************@k78g2000cwa.googlegr oups.com...
Hi, I have the following functions, but ' dx = abs(i2 - i1)/min(i2,
i1)' always return 0, can you please tell me how can i convert it from
an integer to float?
I don't think that's what you really want to do.

What you really want is for dx to be a float rather than being truncated to
an integer. Division is going to behave that way in the future, so if you
want it to behave that way now, you can write

from __future__ import division

at the beginning of your program.

If for some reason you don't want to rely on using a version of Python that
knows about this future behavior, you might consider

dx = float(abs(i2 - i1))/min(i2, i1)

as an alternative.
Mar 5 '07 #10
On 2007-03-05, Andrew Koenig <ar*@acm.orgwrote:
><yi*****@gmail.comwrote in message
news:11**********************@k78g2000cwa.googlegr oups.com...
>Hi, I have the following functions, but ' dx = abs(i2 - i1)/min(i2,
i1)' always return 0, can you please tell me how can i convert it from
an integer to float?

I don't think that's what you really want to do.

What you really want is for dx to be a float rather than being truncated to
an integer. Division is going to behave that way in the future, so if you
want it to behave that way now, you can write

from __future__ import division

at the beginning of your program.

If for some reason you don't want to rely on using a version of Python that
knows about this future behavior, you might consider

dx = float(abs(i2 - i1))/min(i2, i1)
I prefer to multiply by 1.0 That has the advantage it continues to work
if your numbers happen to be complex.

--
Antoon Pardon
Mar 8 '07 #11

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

4 posts views Thread by mthread | last post: by
2 posts views Thread by pantherxin | last post: by
reply views Thread by NPC403 | last post: by
1 post views Thread by howard w | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.