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
Libérer: 2025-01-05 16:57:41
original
184 Les gens l'ont consulté

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

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

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!

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