Surmonter l'inexactitude décimale en double
Lorsque vous travaillez avec des doubles, il est souvent nécessaire d'ajuster leurs décimales avec précision. Une idée fausse courante est que multiplier par 0,1 ou une fraction similaire à plusieurs reprises suffira. Cependant, cela peut entraîner des erreurs d'arrondi importantes en raison de la représentation inexacte de ces valeurs au format double.
Une approche plus précise consiste à utiliser des multiplicateurs et des divisions d'entiers, en profitant du fait que les entiers peuvent être représentés avec précision. Par exemple, diviser par 100, comme indiqué ci-dessous, déplace effectivement la décimale vers la droite :
double x = 1234; x /= 100;
Cependant, il convient de noter que si la division par un nombre entier élimine les erreurs d'arrondi composé, elle ne supprime pas complètement éliminer les inexactitudes d’arrondi. L'arithmétique à virgule flottante introduit intrinsèquement une petite quantité d'arrondi lors du calcul, quelle que soit la méthode utilisée.
Pour obtenir une représentation décimale exacte, on peut envisager d'utiliser BigDecimal, une classe de l'API Java qui fournit une arithmétique de précision arbitraire. . BigDecimal conserve la valeur exacte en interne, éliminant ainsi toute erreur d'arrondi pouvant survenir dans les calculs à virgule flottante.
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!