質問

+ veまたは-veのように、常に符号を出力する標準またはカスタムの数値形式文字列を指定する方法はありますか(ゼロに対して何をすべきかはわかりません!)

役に立ちましたか?

解決

はい、できます。 条件付き書式があります。 MSDNの条件付き書式設定

を参照してください。

eg:

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ではなく)のみが表示されます。

<!> quot;#<!> quot;カスタム指定子 https://msdn.microsoft.com/en-us/library/ 0c899ak8.aspx

  

この指定子は、ゼロが文字列の唯一の数字であっても、有効数字ではないゼロを表示しないことに注意してください。表示されている数字の有効数字である場合にのみゼロが表示されます。

10進精度が必要な場合は、次のように指定する必要があることに注意してください:

String.Format("{0:+0.##;-#.##}", 0));  // output: +0

または、常にゼロを表示したくない場合は、次のようにします:

String.Format("{0:+0.00;-#.00}", 0));  // output: +0.00

任意のタイプの数値式の場合:

+###,###,###,###,###,###,###,###,###,##0.###,###,###,###,###,###,###,###,###,###;-###,###,###,###,###,###,###,###,###,##0.###,###,###,###,###,###,###,###,###,###;0

3つのケースに3つの部分を使用します:ポジティブ、ネガティブ、ゼロ

例の他の側面:

  • ゼロは署名されていません。 <!> quot; zero <!> quot;など、何でも表示できます。

  • 絶対値が1未満の場合、小数点の前に0が付きます。好みに合わせて調整します。

  • 桁数は、最大および最小の絶対10進数値です。好みに合わせて調整します。

  • 小数点文字はカルチャ固有です。 .NETの代替。

  • グループ化セパレーターはオプションです。キャラクターは文化固有のものです。 .NETの代替。 (位置も文化固有ですが、それは書式文字列によってのみ制御されます。)また、書式の特殊文字(、。#0を含む)以外の文字も使用します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top