Maison > Java > javaDidacticiel > Comment puis-je formater avec précision des nombres à virgule flottante en Java tout en évitant les zéros inutiles ?

Comment puis-je formater avec précision des nombres à virgule flottante en Java tout en évitant les zéros inutiles ?

Susan Sarandon
Libérer: 2024-12-29 01:09:16
original
207 Les gens l'ont consulté

How Can I Precisely Format Floating-Point Numbers in Java While Avoiding Unnecessary Trailing Zeros?

Préserver la précision dans le formatage à virgule flottante

En Java, formater souvent des nombres à virgule flottante avec String.format("%f") entraîne des zéros décimaux indésirables à la fin des petites valeurs. Pour résoudre ce problème, une approche personnalisée est proposée pour distinguer les entiers des doubles et les formater de manière appropriée.

La solution fournie utilise le fait que les doubles 64 bits peuvent représenter exactement des entiers dans une plage spécifique. Il vérifie si la valeur double est équivalente à sa conversion entière longue. Si c'est vrai, la valeur est formatée sous forme d'entier à l'aide de String.format("%d"). Sinon, il est formaté en double avec la précision minimale nécessaire à l'aide de String.format("%s").

En incorporant cette logique, la solution supprime efficacement les zéros décimaux inutiles des valeurs entières tout en préservant la précision des valeurs réelles. double. Aucune manipulation de chaîne n'est requise, ce qui évite toute perte de performances qui y est associée.

En conséquence, le résultat est :

232
0.18
1237875192
4.58
0
1.2345
Copier après la connexion

Notez que cette approche dépend des paramètres régionaux en raison de la dépendance à l'égard de Chaîne.format. Soyez conscient des différences de formatage potentielles en fonction des paramètres régionaux de l'utilisateur lorsque vous utilisez cette méthode.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal