Bug in basic multiplication

If you run the following simple code in Go playground:

f1 := 256.1
fmt.Println((f1 * 100 - f1 * 10 * 10)*10e15)

You will get 36379.78 instead of 0.
multiplication should not have any rounding errors.

Would appreciate your thoughts on this issue

Multiplication with floats is not an exact operation and will have rounding errors. You can check that even f1*100 == f1*10*10 is false.

This is a feature of binary floating point arithmetic in every language and every platform I have worked on, and I have worked on a lot! This is why you can’t write accounting systems using C or Go floating point: the accountants get annoyed when the cross-footing is off by a penny for no good reason.