このように変換するとString.Format("{0:C}", 126.45)
、$126.45 が返されます
しかし、そのように変換すると String.Format("{0:C}", -126.45)
、($126.45) が返されます
負の変換が中括弧を返すのはなぜですか? このブレースが必要ない場合はどうすればよいですか?
このように変換するとString.Format("{0:C}", 126.45)
、$126.45 が返されます
しかし、そのように変換すると String.Format("{0:C}", -126.45)
、($126.45) が返されます
負の変換が中括弧を返すのはなぜですか? このブレースが必要ない場合はどうすればよいですか?
次のようなことを試してみませんか。
String.Format("{0:$#,##0.00}", -126.45)
ここのドキュメントによると、 「{0:C1}」または「{0:C2}」の形式が機能するはずですが、何らかの奇妙な理由で機能しません..
もう 1 つの方法は、CultureInfo を設定することです。
CultureInfo culture = (CultureInfo)CultureInfo.CurrentCulture.Clone();
culture.NumberFormat.CurrencyNegativePattern = 1;
string s = string.Format(culture, "{0:c}", -126.45);
ここを参照
en-US ロケールでは、負の値を示すために括弧が使用されます。数字の長い列を視覚的にスキャンすると、多くの人はネガが見やすくなります。多くの場合、最も懸念されるのは負の値です (おっと!当座預金口座の残高が引き落とされています)。
異なる書式設定の動作を取得するには、ロケールを変更するか、書式指定子を F のようなものに変更できます。
CultureInfo
それはあなたが使用しているものの標準であるため、括弧を使用します。
自分でやったことはありませんが、フォーマットの構成は現在のNumberFormatInfo
インスタンスによって制御されます。
あなたがそれを理解したら、あなた自身の質問に答えてください、そして私はあなたにプラスします