Python 3, 90101 bytes
lambda s:g(int(s.replace(".","")),10**s[::-1].index("."))
g=lambda a,b:a-1and and(b%a and g(b%a,a)or b//a)
Format: the string must havecontain a decimal point in the string.
Python 3, 90 bytes
lambda s:g(int(s.replace(".","")),10**s[::-1].index("."))
g=lambda a,b:a-1and g(b%a,a)or b
Format: must have a decimal point in the string.
Python 3, 101 bytes
lambda s:g(int(s.replace(".","")),10**s[::-1].index("."))
g=lambda a,b:a and(b%a and g(b%a,a)or b//a)
Format: the string must contain a decimal point.