Duvida: erro na conta?

public class planoInc{ public static void main(String[] args){ double M1=1.0, M2=10.0, cosseno=0.1, g=9.7, f1,f2,f2x; f2=M2*cosseno*g; f2x=M2*g*cosseno; System.out.println(f2); System.out.println(f2x); } }

o f2 resulta em 9,7
e o f2x resulta em 9,70000000000001

Por que isso?

Nem analisei os resultados mas acredito que isso explique alguma coisa: