web-dev-qa-db-fra.com

Formater un flottant à 2 décimales

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!

177
Callum

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

Chaînes de format de nombre standard

411
WraithNath

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.

41
Michael Borgwardt

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.

36
alexandrul

Je crois:

String.Format ("{0: 0.00}", Vente);

Devrait le faire.

Voir Link Exemples de format de chaîne C #

22
Bit
string outString= number.ToString("####0.00");
3
danyolgiax

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
0
Jackson