[英]Custom numeric format string to always display the sign
有什么方法可以指定標准或自定義數字格式的字符串來始終輸出符號,無論是+ ve還是-ve(盡管它應該對零執行什么操作,但我不確定!)
是的你可以。 有條件格式。 請參閱MSDN中的條件格式
例如:
string MyString = number.ToString("+0;-#");
用分號分隔的每個部分代表正數和負數
要么:
string MyString = number.ToString("+#;-#;0");
如果您不希望零具有加號。
請注意,使用條件格式設置時,負值不會自動獲得符號。 你需要做
string MyString = number.ToString("+#;-#;0");
您也可以在string.Format();中使用格式字符串。 格式字符串與索引之間用冒號(':')分隔
var f = string.Format("{0}, Force sign {0:+#;-#;+0}, No sign for zero {0:+#;-#;0}", number);
對於數字{+1,-1,0},得出:
1,強制符號+1,無符號表示+1
-1,強制符號-1,零沒有符號-1
0,強制符號+0,零不帶符號0
您還可以使用插值字符串而不是string.Format
來獲得相同的結果:
var f = $"{number}, Force sign {number:+#;-#;+0}, No sign for zero {number:+#;-#;0}";
與其他答案相反,如果要獲取+ 1,-1,+ 0(對於參數1,-1、0),則需要使用以下格式:
String.Format("{0:+#;-#;+0}", 0)); // output: +0
要么
String.Format("{0:+0;-#}", 0)); // output: +0
如果僅使用+#;-#
,它將僅顯示+
(而不是+0
)表示0。
“#”自定義說明符 (位於https://msdn.microsoft.com/zh-cn/library/0c899ak8.aspx )
請注意,即使字符串中的唯一數字為零,該說明符也不會顯示不是有效數字的零。 僅當顯示的數字中有一個有效數字時,它才會顯示零。
另外請記住,如果需要任何十進制精度,則需要這樣指定:
String.Format("{0:+0.##;-#.##}", 0)); // output: +0
或者,如果您不想零總是顯示出來,就像這樣:
String.Format("{0:+0.00;-#.00}", 0)); // output: +0.00
對於任何類型的數字表達式:
+###,###,###,###,###,###,###,###,###,##0.###,###,###,###,###,###,###,###,###,###;-###,###,###,###,###,###,###,###,###,##0.###,###,###,###,###,###,###,###,###,###;0
在三種情況下使用三個部分:正,負,零
該示例的其他方面:
零未簽名。 您可以將其顯示為任何東西,例如“零”。
小於1的絕對值在小數點前以0開頭。 調整口味。
數字位數代表最大和最小絕對十進制值。 調整口味。
小數點字符是特定於文化的。 .NET替代品。
分組分隔符是可選的。 角色是特定於文化的。 .NET替代品。 (位置也是特定於區域性的,但是僅由格式字符串控制。)您還可以使用格式特殊字符以外的其他任何字符(包括,。#0)。
我無法發表評論,所以我在這里回答(堅果信譽系統....)
您可以很好地使用number.ToString(“ + 0;-#”)來生成UTC字符串TimeFormat
在PowerShell代碼中顯示
"$([System.DateTime]::Now.ToString('HH:mm:ss.fff'))$($([System.TimeZoneInfo]::Local.GetUtcOffset([System.DateTime]::Now).TotalMinutes.ToString('+0;-#')))"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.