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
Susan Sarandonoriginal
2024-12-29 01:09:16196parcourir

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

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!

Déclaration:
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