ASP.NET-括弧内の負の数
-
03-07-2019 - |
質問
私のアプリケーションは現在、負の数を-1として表示していますユーザーは要件を変更しました(変更のためだけです!)。次に、数値を(1)として表示する必要があります。 web.configやアプリのCultureInfoを変更するなど、アプリケーション全体で有効にできますか?番号バリデータを含むページがたくさんあるので、それを行うことの副作用はありますか?
ありがとう!
解決
通貨については本当に簡単です:
String.Format("{0:C}", value)
これは、システムのカルチャ情報を使用します。
データバインドされている通常の番号については、マークグローリーのサンプルを使用します。
他のヒント
文字列フォーマットを使用します。 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に変換します。
常に独自のカスタムToString()メソッドを拡張メソッドとして作成できますが、前述のように、CultureInfoを使用する方がおそらく良いでしょう。ここを見てください:
文字列のフォーマットを行うためにブックマークされた次のページがあります: 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}"
- 括弧内の負の量
- 千桁区切り-コンマ
- $記号の前
Gridview / Datagridsにデータを表示していますか?その場合、次のようなバインドされた列ごとにフォーマットを適用できます。
<asp:BoundField DataFormatString="{##;(##)}"/>
ただし、これは整数でのみ機能します...