Gibt es eine Möglichkeit, eine Standard- oder benutzerdefinierte Zeichenfolge im numerischen Format anzugeben, um immer das Vorzeichen auszugeben, sei es + ve oder -ve (obwohl ich nicht sicher bin, was es für Null tun soll?)
c#
.net
formatting
string-formatting
Craig Shearer
quelle
quelle
+#;-#
, für den Wert 0 bekomme ich nur "+", ohne tatsächliche 0. für mich möchte ich, dass 0 als "+0" erscheint, also funktioniert das :+#;-#;+0
.''
wird großartige Dinge bewirken! Schau dir das an :Changes.ToString("'('#' ▲)';'('#' ▼)';''")
! Es hat mir viel Zeit und Hunderte vonif
Aussagen gespart ! :)+0;-#
anstatt+#;-#;+0
Diese Antwort war für mich wirklich irreführend.Beachten Sie, dass bei Verwendung der bedingten Formatierung der negative Wert nicht automatisch ein Vorzeichen erhält. Du musst tun
quelle
+0;-#
Sie das gleiche Ergebnis mit sauberem Code.Sie können Formatzeichenfolgen auch in string.Format () verwenden. Die Formatzeichenfolge wird durch einen Doppelpunkt (':') vom Index getrennt.
Für die Zahl {+1, -1, 0} ergibt dies:
Sie können auch eine interpolierte Zeichenfolge verwenden
string.Format
, um das gleiche Ergebnis zu erzielen:quelle
+#;-#
Formats für den Wert 0+0;-#
. :)+#;-#;+0
über ,+#;-#
da dies macht es deutlicher , dass 0 als 0 formatiert werdenIm Gegensatz zu den anderen Antworten scheint es, dass Sie das Format verwenden müssen, wenn Sie +1, -1, +0 (für die Argumente 1, -1, 0) erhalten möchten:
oder
Wenn Sie nur verwenden
+#;-#
, wird nur+
(nicht+0
) für 0 angezeigt .Der benutzerdefinierte Bezeichner "#" (unter https://msdn.microsoft.com/en-us/library/0c899ak8.aspx )
Beachten Sie auch, dass Sie eine Dezimalgenauigkeit wie folgt angeben müssen:
oder, wenn Sie nicht möchten, dass immer Nullen angezeigt werden, so:
quelle
Für einen numerischen Ausdruck eines beliebigen Typs:
Verwenden Sie drei Teile für drei Fälle: positiv, negativ, null
Andere Aspekte des Beispiels:
Null ist nicht signiert. Sie können es als alles anzeigen lassen, z. B. "Null".
Absolutwerte kleiner als eins haben eine führende 0 vor dem Dezimalpunkt. Nach Geschmack einstellen.
Die Anzahl der Stellen steht für den größten und den kleinsten absoluten Dezimalwert. Nach Geschmack einstellen.
Das Dezimalzeichen ist kulturspezifisch. .NET-Ersatz.
Gruppentrennzeichen sind optional. Der Charakter ist kulturspezifisch. .NET-Ersatz. (Die Positionen sind ebenfalls kulturspezifisch, werden jedoch nur von Ihrer Formatzeichenfolge gesteuert.) Sie verwenden auch andere Zeichen als die Sonderzeichen für Format (einschließlich ,. # 0).
quelle
Ich kann nicht kommentieren, also mache ich hier eine Antwort (verrücktes Reputationssystem ....)
Sie können number.ToString ("+ 0; - #") sehr gut verwenden, um den UTC-String TimeFormat zu erstellen
Hier in PowerShell-Code gezeigt
Vielen Dank an @gcores https://stackoverflow.com/users/40256/gcores
quelle