Éviter les erreurs de précision en virgule flottante avec les flottants et les doubles en Java
En Java, les opérations impliquant des nombres à virgule flottante (flottants et doubles) peut conduire à des erreurs de précision. Ces erreurs surviennent car les flottants et les doubles représentent des nombres sous forme binaire, ce qui ne fournit pas de représentations exactes pour toutes les valeurs décimales.
Considérez le code suivant :
for (float value = 0.0f; value < 1.0f; value += 0.1f) System.out.println(value);
Au lieu des valeurs attendues, la sortie affiche des incréments de 0,1 avec une légère accumulation d'erreurs :
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.70000005 0.8000001 0.9000001
Résolution des erreurs de précision
Pour éviter ce problème, envisagez les approches suivantes :
BigDecimal step = new BigDecimal("0.1"); for (BigDecimal value = BigDecimal.ZERO; value.compareTo(BigDecimal.ONE) < 0; value = value.add(step)) { System.out.println(value); }
Ce code représentera avec précision et incrémentera la valeur de 0,1, évitant ainsi l'accumulation d'erreurs de précision.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!