String-Format für nur eine Dezimalstelle?

7

Ich möchte nur eine Dezimalstelle angeben. Ich habe Folgendes versucht:

%Vor%

Ergebnis: 6.33. Aber sollte 6.3 sein? Sogar 0.0 funktioniert nicht. Was mache ich falsch?

    
4thSpace 27.08.2012, 16:47
quelle

7 Antworten

14

Sie müssen es als Fließkommawert verwenden, damit es funktioniert.

%Vor%

Hier ist eine Demo. Im Moment ist es nur ein String, also wird er eingefügt wie er ist. Wenn Sie es analysieren müssen, verwenden Sie double.Parse oder double.TryParse . (Oder float oder decimal .)

    
Ry︁ 27.08.2012, 16:48
quelle
16

Hier finden Sie eine weitere Möglichkeit, Gleitkommazahlen nach Bedarf zu formatieren:

%Vor%     
hendrik 27.08.2012 17:29
quelle
5

ToString () vereinfacht den Job. double.Parse(theValue).ToString("N1")

    
Marcelo de Aguiar 27.08.2012 17:02
quelle
4

Hier sind ein paar verschiedene Beispiele zu beachten:

%Vor%

Ausgabe: 6.00

%Vor%

Ausgabe: 6.33

%Vor%

Ausgabe: 6.46

    
PQubeTechnologies 27.08.2012 17:12
quelle
1

Option 1 (lassen Sie es string sein):

%Vor%

Option 2 (umwandeln):

%Vor%

Option 3 (RegEx starten):

%Vor%     
TheHe 27.08.2012 16:50
quelle
1

Die anderen Antworten sind für mich aufgerundet worden, wenn ich 6,39 oder sogar etwas wie 6,398925 gewählt habe. Dieser Ansatz besteht darin, in eine Zeichenfolge zu konvertieren, wie sie ist, dann nach der Dezimalstelle zu suchen und danach nur eine Zahl zurückzugeben:

%Vor%     
James Toomey 02.02.2016 00:31
quelle
0

Bitte das: String.Format ("{0: 0.0}", 123.4567); // zurück 123.5

    
duc14s 27.04.2016 00:50
quelle

Tags und Links