4

私のアプリケーションは現在、負の数を -1 として表示しています。ユーザーが要件を変更したため (変更のためだけに!)、数値を (1) として表示する必要があります。web.config またはアプリの CultureInfo を変更して、アプリケーション全体でそれを有効にすることはできますか? 数値バリデータを含むページがたくさんあるので、それを行うことの副作用はありますか?

ありがとう !

4

8 に答える 8

6

通貨の場合は非常に簡単です。

String.Format("{0:C}", value)

これは、システムのカルチャ情報を使用します。

通常の数値がデータ バインドされている場合は、Mark Glorie の sampleを使用します。

MSDN の記事

于 2009-01-07T02:54:23.333 に答える
3

私は文字列フォーマットを使用します。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.

これはまさにあなたが望むものではありませんが、近いです。

于 2009-01-07T01:18:50.077 に答える
1

これを確認してください.. http://msdn.microsoft.com/en-us/library/91fwbcsb.aspx

指定されたスタイルの数値の文字列表現を、同等の Decimal に変換します。

于 2011-09-05T07:29:14.447 に答える
0

文字列の書式設定を行うために次のページをブックマークしました: http://idunno.org/archive/2004/14/01/122.aspx

ほぼ中途半端に、それは答えを与える:

String.Format("{0:£#,##0.00;(£#,##0.00);Nothing}", value);

あなたの他の質問に答えるために、他の回答で与えられた理由により、 app.config を変更してグローバルにすることはしません。

于 2009-01-07T02:43:56.427 に答える
0
String.Format(”{0:f;(f);0”, -1);
于 2009-01-07T01:21:55.953 に答える
0

これは機能します。

DataFormatString="{0:c0}"
  • 括弧内の負の金額
  • 千区切り記号 - コンマ
  • $ 記号の前に
于 2011-03-04T00:24:09.350 に答える
-1

独自のカスタム ToString() メソッドを拡張メソッドとしていつでも作成できますが、言及したように、CultureInfo を使用する方がおそらく優れています。ここを見てください:

http://msdn.microsoft.com/en-us/library/system.globalization.numberformatinfo.numbernegativepattern.aspx

于 2009-01-07T01:08:40.737 に答える
-1

データを Gridview/Datagrids に表示していますか? その場合、バインドされた列ごとに次のような書式設定を適用できます。

<asp:BoundField DataFormatString="{##;(##)}"/>

これは整数でのみ機能しますが...

于 2009-01-07T02:40:09.587 に答える