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 :
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.
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!