469,287 Members | 2,709 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

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

float problem

for the formula J = I / (12 * 100) where I is low (like about 8 to 15) I
get 0. But when I do it with a calculator it's actually .008333 for example
if I were 10. Is there a way I can get python to recognize the .008333
instead of it just giving me 0?

TIA for your help!

--
Audio Bible Online:
http://www.audio-bible.com/
Jul 18 '05 #1
4 12367

"Indigo Moon Man" <in********@bonbon.net> wrote in message
news:bk************@ID-70710.news.uni-berlin.de...
for the formula J = I / (12 * 100) where I is low (like about 8 to 15) I
get 0. But when I do it with a calculator it's actually .008333 for example if I were 10. Is there a way I can get python to recognize the .008333
instead of it just giving me 0?

TIA for your help!

--
Audio Bible Online:
http://www.audio-bible.com/


Normally division with integers gives an integer result losing everything
after the decimal. Couple of things you can do about that, but basically you
have to convert your denominator or divisor to a float before you divide:

J = I / float(12 * 100)

or

J = float(I) / (12 * 100)

Alternativly you could use 12.0 instead of 12 (or 100.0 instead of 100 for
that matter)

J = I / (12.0 * 100)

or

J = I / (12 * 100.0)

And last, but not least, you can import from future to make all division
"lossless":

from __future__ import division
J = I / (12 * 100)
I personally prefer the first one, but they will all work fine.
greg
Jul 18 '05 #2
On Tuesday 23 September 2003 10:34 pm, Indigo Moon Man wrote:
for the formula J = I / (12 * 100) where I is low (like about 8 to 15) I
get 0. But when I do it with a calculator it's actually .008333 for
example if I were 10. Is there a way I can get python to recognize the
.008333 instead of it just giving me 0?


You're getting bit by the difference between integer and float
division.

In versions of python prior to 2.3 (and in 2.3 under normal
circumstances), division of two integers returns an integer and
division of two floats (or a float and an integer )returns a float:
2/3 0 2/3.0 0.66666666666666663 2.0/3.0 0.66666666666666663
So one solution would be to make sure the numbers you are dividing are
floats when you want a float in return.

In future version of Python, there will be two dividion operators:
/ will always return a float
// will always return an int

In Python 2.3, you can experiment with the future behavior by starting
your program with:
from __future__ import division
2/3 0.66666666666666663 2//3 0


So depending on your version of Python, this may be another solution.

Gary Herron

Jul 18 '05 #3
Gary Herron <gh*****@islandtraining.com> spake thusly:

You're getting bit by the difference between integer and float
division.

In versions of python prior to 2.3 (and in 2.3 under normal
circumstances), division of two integers returns an integer and
division of two floats (or a float and an integer )returns a float:

Great! Thank you very much!
--
Audio Bible Online:
http://www.audio-bible.com/
Jul 18 '05 #4
Greg Krohn <as*@me.com> spake thusly:

Normally division with integers gives an integer result losing everything
after the decimal. Couple of things you can do about that, but basically
you have to convert your denominator or divisor to a float before you
divide:

That's great! Thank you very much for your help!

--
Audio Bible Online:
http://www.audio-bible.com/
Jul 18 '05 #5

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

5 posts views Thread by Chris Beall | last post: by
2 posts views Thread by Dr. Richard E. Hawkins | last post: by
14 posts views Thread by Glen Able | last post: by
54 posts views Thread by Andy | last post: by
6 posts views Thread by James Thurley | last post: by
8 posts views Thread by Rene | last post: by
20 posts views Thread by ehabaziz2001 | last post: by
3 posts views Thread by bofh1234 | last post: by
3 posts views Thread by Harry | last post: by
1 post views Thread by CARIGAR | last post: by
reply views Thread by zhoujie | last post: by
reply views Thread by suresh191 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.