44

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

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

3 に答える 3

65

%あなたはキャラクターを脱出することができます:

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

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

@逐語的な記号がない場合、sはコンパイラーによって\エスケープ文字列として解釈されるため、として自身でエスケープする必要があります。\\

どちらか一方を選択しますが、両方を選択しないでください。

@"{0:#\%}"  -> right
"{0:#\\%}"  -> right
@"{0:#\\%}" -> wrong
于 2011-05-12T20:12:55.163 に答える
36

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

[DisplayFormat(DataFormatString = "{0:0.00}%")]
于 2012-11-28T14:56:12.087 に答える
6

リンク先のページから:

\エスケープ文字

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

[DisplayFormat(DataFormatString = "{0:#\\%}")]
于 2011-05-12T20:14:12.263 に答える