dezimal ToString Formatierung, die mindestens 1 Ziffer, keine Obergrenze
Formatieren einer decimal
in C# mit mindestens einer Stelle nach dem Komma, aber nicht einen festen oberen Grenzwert, wenn angegeben, mehr als 1 Nachkommastelle:
5 -> "5.0"
5.1 -> "5.1"
5.122 -> "5.122"
10.235544545 -> "10.235544545"
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
ToString("0.0###########################")
.Einige Hinweise:,
#
s gibt, als diedecimal
- Struktur Platz für Präzision bis zu 28 Dezimalstellen.0
benutzerdefinierte Bezeichner wird zu einer Zahl, um eine immer angezeigt, selbst wenn der Wert 0 ist.#
benutzerdefinierte Bezeichner zeigt nur einen Wert, wenn die Ziffer null ist und alle Ziffern rechts/Links die Stelle (je nachdem, welche Seite des dezimalpunktes Sie sind) gleich null sind.#
nach dem ersten0
rechts neben dem Dezimalpunkt, um Platz für die Länge der alle Werte, die Sie passieren zuToString
, wenn Sie nur die Genauigkeit auf 10 Nachkommastellen, dann müssen Sie neun#
(da haben Sie die erste Dezimalstelle nach rechts behandelt, die von0
)Weitere Informationen finden Sie im Abschnitt MSDN mit dem Titel "Benutzerdefinierte zahlenformatzeichenfolgen".
#
's#
, dann wird das Ergebnis gerundet. Die einzige andere Möglichkeit ist zu schreiben, eine Erweiterung MethodeToString
Methode, die das tun würden, was Sie wollen. Jedoch würden Sie zu Durchlaufen haben, irgendeine Art von dummy-variable als Erweiterung Methoden nicht aufgerufen werden, über Methoden, auf die Art, die teilen die gleiche Signatur (entweder das, oder nennen Sie es etwas anderes).ToString()
.0
und 27#
zu decken alle Dezimalstellen. @AnthonyPegram: Richtig ist, aber ich erwähnte, dass in meinem Kommentar.FormatStrings
Klasse mit static oder constAllDecimalDigits
string-Element mit dem gewünschten format-string. Dann können Sie nurmyDecimal.ToString(FormatStrings.AllDecimalDigits)
.d=1000
da der string länger als 3 Zeichen?