Answer and Explanation:
a. Go programming language specifies data types and does not allow mixing them up. Therefore instead of just declaring a float variable, one has to be specific and declare either a float32(single precision floating point number) variable or float64(double precision floating point number). Float64 numbers occupy larger spaces and could be slower in some systems but they represent more accurate numbers.
b. Float64 is more accurate and is used by most math libraries. Float64 and double are same thing, although double precision numbers are called float64 in Go, it doesn't affect the lexical analyzer in any way.