Pourquoi la conversion de float en double change la valeur?

J'ai essayé de trouver la raison, mais je ne pouvais pas.
Quelqu'un peut-il m'aider?

Regardez l'exemple suivant.

    float f;

    f = 125.32f;
    System.out.println("value of f = " + f);
    double d = (double) 125.32f; 
    System.out.println("value of d = " + d);

C'est la sortie:

valeur de f = 125.32

valeur de d = 125.31999969482422

source d'informationauteur arthursfreire