Bonjour tout le monde.

J'ai fait un simple programme qui calcule le produit de deux réels de type float. Le résultat retourné était bizarre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
	public static void main(String[] args){
		float a = 11f;
		float b = 1.89f;
		float produit = a*b;
		System.out.print("a= "+a+" b="+b+" produit="+produit);
	}
Résultat:
a= 11.0 b=1.89 produit=20.789999
Avec le type double, le résultat retourné est exact (20.79).

Quelqu'un peut m'expliquer pourquoi float ne donne pas le résultat exact?

et Merci d'avance.