Précision : float et double

Résolu
BittarAhmad Messages postés 24 Statut Membre -  
BittarAhmad Messages postés 24 Statut Membre -
Bonsoir à toutes et à tous,

Combien de chiffres après la virgule peut prendre un float? ainsi qu'un double ?

Je pense qu'un float peut prendre seulement 6 chiffres, mais à propos du double ?

Mille merci d'avance.

Amicalement,

3 réponses

BittarAhmad Messages postés 24 Statut Membre
 
Accessoirement, j'ai résolu mon problème.

de 6 chiffres après la virgule pour le type float
de 15 chiffres après la virgule pour le type double
de 17 chiffres après la virgule pour le type long double

Bien cordialement,
0
baladur13 Messages postés 50040 Statut Modérateur 13 709
 
0
KX Messages postés 19031 Statut Modérateur 3 020
 
C'est bien plus compliqué que cela, en réalité cela dépend de l'amplitude de la valeur. Si ton nombre est proche de 1 tu auras effectivement plus ou moins ce que tu as dit, mais si tu as un nombre très grand (1 000 000 par exemple) ou très petit (0.000 001 par exemple) et bien le nombre de chiffres après la virgule s'adaptera... Sachant que les calculs se font en binaire, donc parler de chiffres après la virgule (sous entendu en décimal) n'a pas vraiment de sens !

Toute la logique de la chose est expliquée ici : IEEE 754

En Java tu peux utiliser la méthode Math.ulp pour connaitre la valeur de la précision, aussi bien en float qu'en double.

System.out.println(Math.ulp(1f)); // 1.1920929E-7
System.out.println(Math.ulp(1d)); // 2.220446049250313E-16

System.out.println(Math.ulp(1000000f)); // 0.0625
System.out.println(Math.ulp(1000000d)); // 1.1641532182693481E-10

System.out.println(Math.ulp(0.000001f)); // 1.1368684E-13
System.out.println(Math.ulp(0.000001d)); // 2.1175823681357508E-22
0
BittarAhmad Messages postés 24 Statut Membre
 
0