it-swarm.com.de

Einen Float mit 2 Dezimalstellen formatieren

Ich baue gerade ein Vertriebsmodul für eine Kundenwebsite auf. Bisher habe ich den Verkaufspreis perfekt berechnet, aber wo ich festgefahren bin, ist die Ausgabe auf 2 Dezimalstellen.

Ich nenne dies derzeit in einer Variablen, damit ich die Ergebnisse an eine Listenansicht binden kann.

Sale = float.Parse(((x.Sale_Price - (x.Sale_Price * (x.Discount_Price / 100))).ToString())),

Kann mir jemand zeigen, wie ich die Ausgabe auf 2 Dezimalstellen formatieren soll? Danke vielmals!

177
Callum

Sie können das Format an die ToString-Methode übergeben, z. B .:

myFloatVariable.ToString("0.00"); //2dp Number

myFloatVariable.ToString("n2"); // 2dp Number

myFloatVariable.ToString("c2"); // 2dp currency

Standardnummernformat-Zeichenketten

411
WraithNath

Als Erstes müssen Sie für die Preise den Typ decimal anstelle von float verwenden. Die Verwendung von float ist dafür absolut inakzeptabel, da die meisten Dezimalbrüche nicht genau dargestellt werden können.

Wenn Sie das getan haben, können Sie mit Decimal.Round() auf 2 Stellen runden.

41

String.Format("{0:#,###.##}", value)

Ein komplexeres Beispiel aus String-Formatierung in C # :

String.Format("{0:$#,##0.00;($#,##0.00);Zero}", value);

Dies gibt "$ 1,240.00" aus, wenn 1243.50 übergeben wird. Es wird dasselbe Format ausgegeben, jedoch in Klammern, wenn die Zahl negativ ist, und die Zeichenfolge "Null", wenn die Zahl Null ist.

36
alexandrul

Ich glaube:

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

Sollte es tun.

Siehe Link String-Formatbeispiele C #

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

Wie bereits erwähnt, müssen Sie ein formatiertes Ergebnis verwenden. Dies geschieht alles über die Methoden Write(), WriteLine(), Format() und ToString().

Was nicht erwähnt wurde, ist das Fixed-Point-Format , das eine bestimmte Anzahl von Dezimalstellen zulässt. Es wird ein 'F' verwendet, und die auf 'F' folgende Nummer ist die Anzahl der ausgegebenen Dezimalstellen, wie in den Beispielen gezeigt.

Console.WriteLine("{0:F2}", 12);    // 12.00 - two decimal places
Console.WriteLine("{0:F0}", 12.3);  // 12 - ommiting fractions
0
Jackson