2012-02-22 14 views
1

いくつかの整数値(1〜100)があり、それらをDisplayFormatStringプロパティを持つプログレスバーで使用したいと思います。表示形式の文字列、パーセントへの整数

出力文字列にパーセント記号 '%'を付けることもできます。

問題は、シンボルを使用すると、自動的に自分の値に100が乗算され、33%のような値が33%のときに表示されます。どうすればこれを克服できますか?

DisplayFormatString="0%" 
+0

あなたのコードを表示し、我々が表示されます。 –

+0

完了し、私の質問を更新しました。 –

+0

入力は外部ソースからのものです。また、私はコードで作業するのではなく、ASPで作業します。 –

答えて

8

DisplayFormatStringとして0'%'を使用してください(一重引用符で囲まれた割合)。これは、あなたの番号にパーセント記号を付加するのに役立ちます。だから33%が得られます。

もう一度試してみてください。0\\%(動作するかどうかはわかりませんが)でも、同じ33%にしてください。

0

としてはhereを示しています。DisplayFormatString="P"

+0

動作しません。出力 '3.300,00%' –

+0

あなたは値を乗算する必要はありません、あなたのためにそれを行います。 – AngeloBad

+0

pとPの両方がパーセンテージを表示します。もう一方が乗数を実行している間、一方が表示されます(今のところどの方向に覚えていないか) – Kuffs

4

ProgressBarを使用しようとするあなたは"P"DisplayFormatStringを設定すると、あなたの入力が0と1の間になり、これはパーセントで表示されますを前提としています。

2

問題はパーセンテージの表現にあります。通常、パーセンテージは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をチェックアウトすることができ、そのソリューションを使用したくない場合。

2

the documentationのように、標準の.NET文字列書式設定方法は、百分率で書式を設定すると100倍になります。入力を100で割ったり、元の計算方法を変更したりする必要があるようです。

2

データ注釈での作業中に、私は同様の問題があった、私は中括弧で0を包んだとき、それが働いた:DataFormatString = "{0}%"

関連する問題