Gérer les limites de précision dans les calculs à virgule flottante
Les nombres à virgule flottante sont largement utilisés en informatique, mais ils comportent des limites de précision inhérentes . L'un de ces problèmes est l'incapacité de représenter avec précision tous les nombres réels, ce qui entraîne des erreurs d'arrondi lors des calculs.
Problème avec la représentation à virgule flottante
Considérez le code suivant qui tente pour calculer le nombre de colonnes en fonction de certaines valeurs :
double mw = 4.5999999999999996; // Represented as 4.6 internally double p = 0.2; double g = 0.2; int h = 1; int columns = (int) ((mw - (h * 11 * p)) / ((h * 11 * p) + g)) + 1;
Malgré un résultat souhaité de 2, le programme génère incorrectement 1. En effet, la représentation interne à virgule flottante de 4,6 (4,59999999999999996) provoque des erreurs d'arrondi dans les calculs.
Résoudre le problème de précision
Surmonter cette précision le problème nécessite de reconnaître les limites de la virgule flottante arithmétique :
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!