Je construis actuellement un module de vente pour un site Web de clients. Jusqu'à présent, le prix de vente à calculer parfaitement, mais je me suis retrouvé coincé, c'est le formatage de la sortie à 2 décimales.
J'appelle actuellement cela dans une variable afin de pouvoir lier les résultats à une liste.
Sale = float.Parse(((x.Sale_Price - (x.Sale_Price * (x.Discount_Price / 100))).ToString())),
Quelqu'un peut-il me montrer comment formater la sortie à 2 décimales? Merci beaucoup!
Vous pouvez transmettre le format à la méthode ToString
, par exemple:
myFloatVariable.ToString("0.00"); //2dp Number
myFloatVariable.ToString("n2"); // 2dp Number
myFloatVariable.ToString("c2"); // 2dp currency
La première chose à faire est d’utiliser le type decimal
au lieu de float
pour les prix. Utiliser float
est absolument inacceptable pour cela car il ne peut pas représenter avec précision la plupart des fractions décimales.
Une fois que vous avez fait cela, Decimal.Round()
peut être utilisé pour arrondir à 2 places.
String.Format("{0:#,###.##}", value)
Un exemple plus complexe de Formatage de chaîne en C # :
String.Format("{0:$#,##0.00;($#,##0.00);Zero}", value);
Cela générera “$ 1240.00 ″ si passé 1243.50. Il affichera le même format, mais entre parenthèses si le nombre est négatif et la chaîne "Zéro" si le nombre est zéro.
Je crois:
String.Format ("{0: 0.00}", Vente);
Devrait le faire.
Voir Link Exemples de format de chaîne C #
string outString= number.ToString("####0.00");
Comme déjà mentionné, vous devrez utiliser un résultat formaté; tout se fait à l'aide des méthodes Write()
, WriteLine()
, Format()
et ToString()
.
Ce qui n’a pas été mentionné est le Format à virgule fixe qui permet un nombre spécifié de décimales. Il utilise un «F» et le nombre suivant le «F» est le nombre de décimales en sortie, comme indiqué dans les exemples.
Console.WriteLine("{0:F2}", 12); // 12.00 - two decimal places
Console.WriteLine("{0:F0}", 12.3); // 12 - ommiting fractions