Maison >développement back-end >C++ >Comment tronquer, et non arrondir, doubler des valeurs à un nombre spécifique de décimales en C# ?

Comment tronquer, et non arrondir, doubler des valeurs à un nombre spécifique de décimales en C# ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-27 12:15:111006parcourir

How to Truncate, Not Round, Double Values to a Specific Number of Decimal Places in C#?

Tronquage de valeurs doubles sans arrondi en C#

Lors de la conversion d'un nombre à virgule flottante double précision en chaîne en C#, vous pouvez rencontrer la nécessité de le formater avec un nombre spécifique de décimales. Cependant, l'utilisation de String.Format("{0:0.00}") peut entraîner un arrondi, ce qui n'est pas souhaitable dans certains scénarios dans lesquels vous souhaitez une troncature exacte.

Pour résoudre ce problème, utilisez une combinaison de Math.Truncate () et NumberFormatInfo.CurrentInfo pour obtenir une troncature sans arrondi et maintenir une culture sensible formatage.

Solution :

  1. Tronquer la valeur double à l'aide de Math.Truncate() :
double myDoubleValue = 50.947563;
double x = Math.Truncate(myDoubleValue * 100) / 100;

Cette opération multiplie la valeur par 100, la tronque pour supprimer les décimales, puis la divise par 100 pour restaurer l'original scale.

  1. Formater la valeur tronquée à l'aide de NumberFormatInfo.CurrentInfo :
string s = x.ToString("N2", NumberFormatInfo.CurrentInfo);

Ce spécificateur de format utilise la chaîne de format "N", qui inclut le formatage monétaire avec une fin signe de pourcentage. NumberFormatInfo.CurrentInfo garantit que le formatage suit les paramètres de culture actuels.

Résultat :

En utilisant la méthode ci-dessus, vous obtiendrez une représentation sous forme de chaîne de la valeur double avec exactement deux décimales sans aucun arrondi. Par exemple, la valeur 50,947563 sera tronquée à 50,94 sans arrondir à 50,95.

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