Your problem is here
for n in range(num_iterations):
print "n before =", n
n = B*10
print "n after =", n
You use "n" twice and are always multiplying the same number, "B". Something like this should give you the idea of how to go about it. Also, I've introduced divmod which is just another way to get the whole integer and the remainder (not decimal). Your main problem is that you haven't tried including print statements to see what is happening, so can not tell that you are getting the remainder as an integer and not as a float/decimal.
def rationalnum(n, d, num_iterations):
whole, remain = divmod(n, d)
print "divmod =", whole, remain
print "% =", n%d, n, d
## convert to decimal
dec = float(remain) / d
print "dec =", dec
##--- you could also use this to convert
number = float(n) / d
number_int = int(number)
number_decimal = number - number_int
for n in range(num_iterations):
dec *= 10
print dec
print "\nthe decimal multiplied %d times = %d\n" % \
(num_iterations, int(dec))
def main():
num = input('Please Enter a numerator to the rational number: ')
denom = input('Please Enter a denominator to the rational number: ')
num_iterations = input('Please Enter a number of decimal places to show: ')
rationalnum(num, denom, num_iterations)
main()
Finally, there is no reason to have the main() function, with one orphaned statement that calls it, unless you want to call it from another program, in which case it should be named something more descriptive than "main".