osdir.com


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

decimal numbers


On Sat, Feb 15, 2014 at 2:18 AM,  <luke.geelen at gmail.com> wrote:
> hello,
> i have been working on a python resistor calculator to let my class show what you can do with python.
> now i have a script that makes the more speekable value of the resistance (res)
>
> #if len(str(res)) > 9:
> #  res2 = res / 1000000000
> #  print "de weerstand is %s,%s giga ohms" % (res2)
> #elif len(str(res)) > 6:
> #  res2 = res / 1000000
> #  print "de weerstand is %s,%s Mega ohm" % (res2)
> #elif len(str(res)) > 3:
> #  res2 = res / 1000
> #  print "de weerstand is", res2,"kilo ohm"
> #elif len(str(res)) < 4:
> #  res2 = res
> #  print "de weerstand is", res2,"ohm"
>
> i commented it because it doesn't work (yet), when i have a resistance of
> 9.9 Giga ohms it says it is 9 giga ohms. it seems to work with natural number, anyway of using decimals insted so that it says : the resistance is 9.9 Giga Ohms instead of 9 ?

Others have already explained how to do floating-point rather than
integer division.  I'm curious to know why you're basing the if tests
on the length of the number as a string rather than on the magnitude
of the number.  Consider for example an input of 0.01.  Converted to a
string, that is "0.01" which has a length of 4.  So the output would
be "de weerstand is 0.00001 kilo ohm", which is probably not what you
would desire.