私のアプリケーションは現在、負の数を -1 として表示しています。ユーザーが要件を変更したため (変更のためだけに!)、数値を (1) として表示する必要があります。web.config またはアプリの CultureInfo を変更して、アプリケーション全体でそれを有効にすることはできますか? 数値バリデータを含むページがたくさんあるので、それを行うことの副作用はありますか?
ありがとう !
私のアプリケーションは現在、負の数を -1 として表示しています。ユーザーが要件を変更したため (変更のためだけに!)、数値を (1) として表示する必要があります。web.config またはアプリの CultureInfo を変更して、アプリケーション全体でそれを有効にすることはできますか? 数値バリデータを含むページがたくさんあるので、それを行うことの副作用はありますか?
ありがとう !
通貨の場合は非常に簡単です。
String.Format("{0:C}", value)
これは、システムのカルチャ情報を使用します。
通常の数値がデータ バインドされている場合は、Mark Glorie の sampleを使用します。
私は文字列フォーマットを使用します。UI の要件を満たすためにアプリケーションの構成を変更するのは大変な作業です。SteveX は、文字列の書式設定に関する素晴らしいブログ投稿を書きました。コードだけでなく、マークアップ (aspx) とも互換性があります。
彼の投稿から:
String.Format(”{0:$#,##0.00;($#,##0.00);Zero}”, value);
This will output “$1,240.00″ if passed 1243.50. It will output the
same format but in parentheses if the number is negative, and will
output the string “Zero” if the number is zero.
これはまさにあなたが望むものではありませんが、近いです。
これを確認してください.. http://msdn.microsoft.com/en-us/library/91fwbcsb.aspx
指定されたスタイルの数値の文字列表現を、同等の Decimal に変換します。
文字列の書式設定を行うために次のページをブックマークしました: http://idunno.org/archive/2004/14/01/122.aspx
ほぼ中途半端に、それは答えを与える:
String.Format("{0:£#,##0.00;(£#,##0.00);Nothing}", value);
あなたの他の質問に答えるために、他の回答で与えられた理由により、 app.config を変更してグローバルにすることはしません。
String.Format(”{0:f;(f);0”, -1);
これは機能します。
DataFormatString="{0:c0}"
独自のカスタム ToString() メソッドを拡張メソッドとしていつでも作成できますが、言及したように、CultureInfo を使用する方がおそらく優れています。ここを見てください:
データを Gridview/Datagrids に表示していますか? その場合、バインドされた列ごとに次のような書式設定を適用できます。
<asp:BoundField DataFormatString="{##;(##)}"/>
これは整数でのみ機能しますが...