Maison >Java >javaDidacticiel >Comment puis-je formater des nombres à virgule flottante pour éviter les zéros inutiles ?

Comment puis-je formater des nombres à virgule flottante pour éviter les zéros inutiles ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-21 17:28:10770parcourir

How Can I Format Floating-Point Numbers to Avoid Unnecessary Trailing Zeros?

Formatage des nombres à virgule flottante avec un contrôle précis

Lorsqu'il s'agit de nombres à virgule flottante, il est souvent souhaitable de les formater de manière esthétique sans décimales inutiles des zéros. Considérez la tâche consistant à imprimer une plage de valeurs incluant des entiers stockés sous forme de doubles et de véritables doubles.

Éviter les zéros de fin avec des codes de format spécifiques

While String.format(" %f", valeur) peut sembler approprié, il ajoute des zéros à droite pour les petites valeurs. Pour obtenir la précision souhaitée, envisagez d'utiliser des codes de format alternatif :

Fonction de formatage personnalisée avec vérification décimale

Pour un contrôle précis, implémentez une fonction de formatage personnalisée qui fait la différence entre les entiers et les nombres entiers. doubles :

public static String fmt(double d) {
    if (d == (long) d)
        return String.format("%d", (long) d);
    else
        return String.format("%s", d);
}

Cette fonction vérifie si la valeur double représente un entier (en utilisant un casting forcé à long). Si c'est le cas, il formate la valeur sous forme d'entier à l'aide de String.format("%d"); sinon, il formate le double sans précision inutile.

Exemple de sortie :

En utilisant cette fonction personnalisée, la sortie souhaitée peut être obtenue :

232
0.18
1237875192
4.58
0
1.2345

Remarque sur les considérations régionales

Le formatage des chaînes est sensible aux paramètres régionaux. Les résultats de formatage précis peuvent varier en fonction des paramètres régionaux.

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