A conversion error is the discrepancy introduced when a real or decimal value is stored in finite floating-point form. Go's float32 and float64 values approximate real arithmetic because infinitely many real values must fit into a finite number of bits. section 3.3
Multiplication exposes the approximation
Although 1.0001 × 1.0001 equals 1.00020001 mathematically, multiplying a float32 value can print 1.0002. The stored value is already slightly different from 1.0001, so the resulting arithmetic inherits that discrepancy. section 3.3
var n float32 = 1.0001 fmt.Println(n * n)
Run the float32 multiplication to observe conversion error directly. section 3.3
