Fix type of float and complex untyped constant when it is assigned to a variable of interface type or the blank identifier

According to the specification: http://golang.org/ref/spec#Assignments :

If an untyped constant is assigned to a variable of interface type or the blank identifier, the constant is first converted to type bool, rune, int, float64, complex128 or string respectively, depending on whether the value is a boolean, rune, integer, floating-point, complex, or string constant.

fixed issue #474