Maison >développement back-end >C++ >Comment puis-je afficher avec précision la valeur décimale exacte d'un double en C# ?

Comment puis-je afficher avec précision la valeur décimale exacte d'un double en C# ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-05 16:57:41193parcourir

How Can I Accurately Output the Exact Decimal Value of a Double in C#?

Formatage des doubles en C#

Lors de la sortie des doubles, C# les arrondit automatiquement à 15 chiffres significatifs avant d'appliquer un formatage. Cela peut entraîner des écarts entre la sortie formatée et la valeur réelle du double.

Problème avec String.Format :

La méthode String.Format en C# n'affecte que l’affichage du numéro formaté. Il n'ajuste pas la précision de la valeur double sous-jacente. Par conséquent, String.Format("{0:F20}", i) affichera 20 décimales, mais la valeur réelle du double peut encore avoir été arrondie à 15 décimales en interne.

Exemple :

Considérons le code suivant :

double i = 10 * 0.69;
Console.WriteLine(String.Format("  {0:F20}", i));

La sortie sera 6.90000000000000000000 , même si la valeur réelle de i est plus proche de 6.899999999999999946709.

Solution :

Pour afficher la valeur décimale exacte d'un double, vous pouvez utiliser Jon Skeet's Classe DoubleConverter. Cette classe possède une méthode ToExactString qui renvoie la représentation décimale exacte d'un double. Vous pouvez ensuite formater la chaîne selon vos besoins.

Par exemple :

double i = 10 * 0.69;
Console.WriteLine(DoubleConverter.ToExactString(i));

Cela affichera 6.89999999999999946709294817992486059665679931640625 , qui est la représentation décimale exacte de i.

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