回答:
はい、できます。条件付き書式があります。MSDNの条件付き書式を参照してください
例えば:
string MyString = number.ToString("+0;-#");
セミコロンで区切られた各セクションが正の数と負の数を表す場合
または:
string MyString = number.ToString("+#;-#;0");
ゼロにプラス記号を付けたくない場合。
+#;-#
、値0の場合、実際の0はなく、単に「+」を取得します。0を「+0」として表示したいので、これは機能します+#;-#;+0
。
''
ことは素晴らしいことをします!これを見てください:Changes.ToString("'('#' ▲)';'('#' ▼)';''")
!これにより、多くの時間と数百のif
ステートメントを節約できました。:)
+0;-#
代わりにあなたも行うことができ+#;-#;+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}";
+#;-#
、値0 のフォーマットの実際の結果です
+0;-#
。:)
+#;-#;+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/en-us/library/0c899ak8.aspxにあります)
この指定子は、ゼロが文字列内の唯一の数字であっても、有効数字ではないゼロを表示することはありません。表示されている数値の有効数字である場合にのみ、ゼロが表示されます。
また、小数精度が必要な場合は、次のように指定する必要があることに注意してください。
String.Format("{0:+0.##;-#.##}", 0)); // output: +0
または、常に表示したくない場合は、次のようにします。
String.Format("{0:+0.00;-#.00}", 0)); // output: +0.00
任意のタイプの数値式の場合:
+###,###,###,###,###,###,###,###,###,##0.###,###,###,###,###,###,###,###,###,###;-###,###,###,###,###,###,###,###,###,##0.###,###,###,###,###,###,###,###,###,###;0
3つのケースで3つの部分を使用:正、負、ゼロ
例の他の側面:
ゼロは署名されていません。「ゼロ」など、何でも表示できます。
絶対値が1未満の場合、小数点の前に0が付きます。好みに合わせて調整してください。
桁数は、最大および最小の絶対10進値です。好みに合わせて調整してください。
小数点文字は文化に固有です。.NETの代替。
グループ化区切り文字はオプションです。文字は文化固有です。.NETの代替。(位置もカルチャ固有ですが、フォーマット文字列によってのみ制御されます。)Formatの特殊文字(、。#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;-#')))"
ありがとう@gcores https://stackoverflow.com/users/40256/gcores