Maison > Java > javaDidacticiel > Comment puis-je ajuster avec précision les décimales dans les variables doubles ?

Comment puis-je ajuster avec précision les décimales dans les variables doubles ?

DDD
Libérer: 2024-12-06 15:13:15
original
452 Les gens l'ont consulté

How Can I Accurately Adjust Decimal Places in Double Variables?

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;
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal