Maison >développement back-end >C++ >Pourquoi le double formatage C# et les valeurs du débogueur diffèrent-ils ?
Lors du formatage double pour la sortie en C#, il est important de noter que la sortie diffère de la valeur affichée dans le débogueur. Voici pourquoi :
Contrairement au C, où la précision de sortie est déterminée par le spécificateur de format, C# arrondit tous les doubles à 15 chiffres décimaux significatifs avant d'appliquer un formatage. Cet écart se produit car C# donne la priorité à l'exactitude par rapport à la précision demandée.
Le débogueur de Visual Studio affiche directement la représentation binaire interne des doubles, d'où l'écart avec la sortie formatée.
Bien que C# manque de solution intégrée pour un formatage décimal exact, vous pouvez construire manuellement une représentation sous forme de chaîne à partir des données binaires internes. Vous pouvez également utiliser des bibliothèques tierces comme DoubleConverter de Jon Skeet, qui fournit une méthode ToExactString pour une sortie décimale précise.
Utilisation de DoubleConverter pour formater un double à 20 décimales :
double i = 10 * 0.69; Console.WriteLine(DoubleConverter.ToExactString(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!