2017-03-10 7 views
2

BigIntegerの値を0にフォーマットし、結果として空の文字列を取得しています。それは期待された行動ですか?BigIntegerの書式設定は0のために空です

System.Numerics.BigInteger value = 0; 
string xx = value.ToString("#", System.Globalization.CultureInfo.InvariantCulture); 

xxは、これら2つのステートメントの後にstring.Emptyです。値を10に設定すると、「10」になります。

+0

プラス1。それは明らかに設計によるものですが、確かにそれはカヌーのトラップドアほど有用ですか? – Bathsheba

答えて

5

はい、これは予想される動作です。 MSDNから:

フォーマットされている値が「#」記号が書式文字列に表示された位置に数字がある場合、その桁は、結果の文字列にコピーされます。 それ以外の場合、結果文字列内のその位置には何も格納されません。

重点鉱山

あなたは常に、少なくとも一桁たい場合は、代わりに書式文字列として0を使用することができます。

string xx = value.ToString("0", System.Globalization.CultureInfo.InvariantCulture); 

収量:

  • 0"0"
  • 10"10"
2

"#" カスタム指定子のドキュメントを参照してください:この指定子は有効桁でないゼロを表示しないこと

https://msdn.microsoft.com/en-us/library/0c899ak8(v=vs.110).aspx#SpecifierD

注意、をたとえゼロが文字列の唯一の桁であっても。表示されている数字の有効数字である場合にのみ0を表示します。

あなたの場合、0は有効数字ではないため、表示されません。

代わりに0を指定子として使用してください。

関連する問題