货币的字符串格式(使用大括号格式化的负值)

1 string.format currency

当我们转换String.Format("{0:C}", 126.45)它返回$ 126.45

但如果我们转换 String.Format("{0:C}", -126.45)它返回($ 126.45)

为什么负转换返回括号?如果我们不想要这个括号怎么办?

Ado*_*rez 10

你为什么不尝试这样的事情:

String.Format("{0:$#,##0.00}", -126.45)
Run Code Online (Sandbox Code Playgroud)

根据这里的文档,"{0:C1}"或"{0:C2}"的格式应该可以工作,但由于一些奇怪的原因,它不是..

另一种方法可能是设置CultureInfo:

CultureInfo culture = (CultureInfo)CultureInfo.CurrentCulture.Clone();
culture.NumberFormat.CurrencyNegativePattern = 1;
string s = string.Format(culture, "{0:c}", -126.45);
Run Code Online (Sandbox Code Playgroud)

参考这里