I think your idea was quite good already. To implement it, you would first need a dictionary that can convert strings to integers. Then you'd want to split your string into two, at the decimal point. Then, you could reverse your "before" string and iterate through it, multiplying the integer of the current value with 10 to the current index and adding all these values up.
Then, iterate through your "after" string and multiply the current value with the negative current index, adding the values again.
To put this into code:
s2i = {"0": 0,
"1": 1,
"2": 2,
...
"Y": 34,
"Z": 35
}
def convert_float(s, base=10):
ret = 0
if "." not in s: bef = s
else: bef, aft = s.split(".")
for i in enumerate(reversed(bef)):
integer = s2i[i[1]]
if integer >= base: raise ValueError
ret += base**i[0] * integer
if "." not in s: return ret
for i in enumerate(aft):
integer = s2i[i[1]]
if integer >= base: raise ValueError
ret += base**-(i[0] + 1) * integer
return ret
print convert_float("YF.1G90N", 36)
> 1239.04031674