Python 98*0.8=78.4
---

    d=`len('X'*int("{}{:>02}".format(*(raw_input()+".0").split('.')))*2)`;print'%s.%s'%(d[:-3],d[-3:])


Python 74 (without bonus)
---
    d=len('X'*int(raw_input().replace('.',''))*2);print'%s.%s'%(d[:-3],d[-3:])

**Note**

- `+` is used for string concatenation
- `*` used to create copies of string 

**Ungolfed**

    def tip():
        amount = raw_input()
        #Add an extra decimal point so that we can accept integer
        #amount
        amount += ".0"
        #Split the integer and decimal part
        whole, frac = amount.split('.')
        #Multiply amount by 100 :-)
        amount = "{}{:>02}".format(whole, frac)
        #Create amount copies of a character
        st = 'X'*amount
        #Double it
        st *= 2
        #Calculate the Length
        d = len(st)
        #Display the result as 3 decimal fraction
        print'%s.%s'%(d[:-3],d[-3:])

**Note**

In spirit of the question, I believe the following solution though follows all rules of the question is an abuse 

Python 41
----

    print __import__("operator")(input(),0.2)

**Finally**

If you insist that the mathematical symbols are forbidden, her is a 90 character solution

Python 90 (without any mathematical symbol)
---

    print' '.join(str(int(raw_input().replace(".",""))<<1)).replace(' ','.',1).replace(' ','')