将字符串转换为浮点型会失去精度吗?

Problem

When converting a string to a float64, the fractional part of the float64 loses a significant amount of numbers.

Code

origVal := "0.00000628"
convVal, err := strconv.ParseFloat(origVal, 64)
if err == nil {
    fmt.Printf("Original value: %s
Converted value: %f
", origVal, convVal)
}

Outputs:

Original value: 0.00000628
Converted value: 0.000006

The code is available on the Go Playground: https://play.golang.org/p/a8fH_JGug7l

Context

I am pulling data from an API. This API stringifies floating point numbers. I convert these stringified numbers to floats because I want to do some basic arithmetics on them.
I am fairly new to Go, so my apologies if the answer is straightforward.

The problem was not that the string was not correctly converted, but that Printf does, by default, not output the complete fractional part if it is long. The following code prints the same as the original code but with 10 numbers after the decimal point:

origVal := "0.00000628"
convVal, err := strconv.ParseFloat(origVal, 64)
if err == nil && err2 ==nil {
    fmt.Printf("Original value: %s
Converted value: %.10f
", origVal, convVal)
}

Thanks to @usr2564301 for the quick reply!