[Tutor] base n fractional
Alan Gauld
alan.gauld at btinternet.com
Mon Apr 6 01:25:57 CEST 2009
"Chris Castillo" <ctcast at gmail.com> wrote
>I need some help converting the fractional (right side of the decimal) to
> base 10.
> I have this but it doesn't work
Frankly, based on your algorithm, I'm not sure what exactly you want
to do but taking the above statement as a starting point
I'd convert the fractional part into an integer then divide by 10**(len(n))
Something like:
n = raw_input('????') # say n ->1.234
d,f = n.split('.') # so d -> '1', f -> '234'
result = int(f)/(10**len(f)) # result = 234/10**3 = 234/1000 =
0.234
Or you could just add a dot back on and convert to float:
f = float('.'+f) # float('.234') -> 0.234
> for digit in range(len(myfrac) -1, -1, -1):
> mydecfrac = mydecfrac + int(myfrac[digit])
> mydecfrac = mydecfrac / base
This just confused me.
I think this might do what you are trying to do:
for digit in reversed(list('234')):
mydecfrac = (mydecfrac + int(digit)) / base
But that doesn't seem to do what I think you wanted?
--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/l2p/
More information about the Tutor
mailing list