web-dev-qa-db-ja.com

100を掛けずにFormatStringでパーセント%を使用するにはどうすればよいですか?

here のように、整数を100で乗算せずにパーセントとしてフォーマットしたいと思います。私のソースはintなので、最初に100で割ることは有効なオプションではありません。これは可能ですか?

[DisplayFormat(DataFormatString = "{0:#%}")]
41
Keith Adler

%文字をエスケープできます:

[DisplayFormat(DataFormatString = @"{0:#\%}")]

エスケープ文字として\を使用するには2つの方法があることに注意してください。文字列リテラルの前に逐語的記号(@)を付けると、\文字が文字列に含まれますつまり、フォーマット文字列の一部としてsingle\がエスケープ文字として機能します。

@ verbatimシンボルがない場合、\sはコンパイラによってエスケープ文字列として解釈されるため、それ自体をエスケープする必要があります。 \\として。

どちらかを選択してください。両方は選択しないでください。

@"{0:#\%}"  -> right
"{0:#\\%}"  -> right
@"{0:#\\%}" -> wrong
62
Dan Tao

%を{0:..}の外に置きます

[DisplayFormat(DataFormatString = "{0:0.00}%")]
33
Rafael Vallone

リンクされたページから:

\エスケープ文字

次の文字をカスタム書式指定子としてではなく、リテラルとして解釈させます。

[DisplayFormat(DataFormatString = "{0:#\\%}")]
6
rurouni