我们有一个大型的ASP.NET MVC项目,在该项目中,所有输出到屏幕上的数字都被格式化为货币形式(即ToString("c"))。然而,负数却显示为带有括号的形式。例如:
decimal d = -8.88m;
Console.WriteLine(d.ToString("c"));
//outputs $(8.88)
这对我们的用户来说有点烦人,特别是在文本框中。我们有几千个地方向屏幕发送像这样的货币字段,所以我们希望有一种可以全局更改格式的方法。有吗?我看到的所有方法都表明你必须创建一个新的格式化程序,类似于这个:
string curCulture = System.Threading.Thread.CurrentThread.CurrentCulture.ToString();
System.Globalization.NumberFormatInfo currencyFormat =
new System.Globalization.CultureInfo(curCulture).NumberFormat;
currencyFormat.CurrencyNegativePattern = 1;
我们希望不必更改所有的ToString("c")方法...是否有更好的方法?我的第一个想法是只更改我们的本地设置为澳大利亚,但我意识到日期格式化将会混乱。