いくつかの整数値(1〜100)があり、それらをDisplayFormatStringプロパティを持つプログレスバーで使用したいと思います。表示形式の文字列、パーセントへの整数
出力文字列にパーセント記号 '%'を付けることもできます。
問題は、シンボルを使用すると、自動的に自分の値に100が乗算され、33%のような値が33%のときに表示されます。どうすればこれを克服できますか?
DisplayFormatString="0%"
いくつかの整数値(1〜100)があり、それらをDisplayFormatStringプロパティを持つプログレスバーで使用したいと思います。表示形式の文字列、パーセントへの整数
出力文字列にパーセント記号 '%'を付けることもできます。
問題は、シンボルを使用すると、自動的に自分の値に100が乗算され、33%のような値が33%のときに表示されます。どうすればこれを克服できますか?
DisplayFormatString="0%"
DisplayFormatString
として0'%'
を使用してください(一重引用符で囲まれた割合)。これは、あなたの番号にパーセント記号を付加するのに役立ちます。だから33%
が得られます。
もう一度試してみてください。0\\%
(動作するかどうかはわかりませんが)でも、同じ33%
にしてください。
ProgressBar
を使用しようとするあなたは"P"
にDisplayFormatString
を設定すると、あなたの入力が0と1の間になり、これはパーセントで表示されますを前提としています。
問題はパーセンテージの表現にあります。通常、パーセンテージは10進数0〜1で、1は100%、0は0%です。したがって、標準string.Format
を使用する場合は、変数を100.0で除算する必要があります(したがって、int 33は10進数の0.33になります)。このような 何か:
int progress = 33;
string.Format("{0:F}", progress/100.0);
あなたはあなたのニーズに合った形式を見つけることMSDN sectionをチェックアウトすることができ、そのソリューションを使用したくない場合。
the documentationのように、標準の.NET文字列書式設定方法は、百分率で書式を設定すると100倍になります。入力を100で割ったり、元の計算方法を変更したりする必要があるようです。
データ注釈での作業中に、私は同様の問題があった、私は中括弧で0を包んだとき、それが働いた:DataFormatString = "{0}%"
あなたのコードを表示し、我々が表示されます。 –
完了し、私の質問を更新しました。 –
入力は外部ソースからのものです。また、私はコードで作業するのではなく、ASPで作業します。 –