1

このように変換するとString.Format("{0:C}", 126.45)、$126.45 が返されます

しかし、そのように変換すると String.Format("{0:C}", -126.45)、($126.45) が返されます

負の変換が中括弧を返すのはなぜですか? このブレースが必要ない場合はどうすればよいですか?

4

4 に答える 4

11

次のようなことを試してみませんか。

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);

ここを参照

于 2012-05-04T17:08:15.620 に答える
0

en-US ロケールでは、負の値を示すために括弧が使用されます。数字の長い列を視覚的にスキャンすると、多くの人はネガが見やすくなります。多くの場合、最も懸念されるのは負の値です (おっと!当座預金口座の残高が引き落とされています)。

異なる書式設定の動作を取得するには、ロケールを変更するか、書式指定子を F のようなものに変更できます。

于 2012-05-04T17:11:03.347 に答える
0

CultureInfoそれはあなたが使用しているものの標準であるため、括弧を使用します。

自分でやったことはありませんが、フォーマットの構成は現在のNumberFormatInfoインスタンスによって制御されます。

あなたがそれを理解したら、あなた自身の質問に答えてください、そして私はあなたにプラスします

于 2012-05-04T17:11:11.093 に答える