Bee*_*eep 17 c# asp.net c#-4.0
我们有一个大的ASP.NET MVC项目,其中输出到屏幕的所有数字都被格式化为货币(即ToString("c").但是,负数显示为().例如:
decimal d = -8.88m;
Console.WriteLine(d.ToString("c"));
//outputs $(8.88)
Run Code Online (Sandbox Code Playgroud)
这对我们的用户来说有点烦人,特别是因为有文本框.我们有几千个地方可以像这样在屏幕上发送货币字段,所以我们想要一种全局改变格式的方法.有吗?我看到的所有方法都表明你必须创建一个新的格式化程序,类似于:
string curCulture = System.Threading.Thread.CurrentThread.CurrentCulture.ToString();
System.Globalization.NumberFormatInfo currencyFormat =
new System.Globalization.CultureInfo(curCulture).NumberFormat;
currencyFormat.CurrencyNegativePattern = 1;
Run Code Online (Sandbox Code Playgroud)
我们不希望改变所有的ToString("c")方法......有更好的方法吗?我的第一个想法是将我们的语言环境改为澳大利亚,但意识到日期格式化将被搞砸.
小智 11
Aliostad很接近...在您的基本控制器中尝试这个:
System.Globalization.CultureInfo modCulture = new System.Globalization.CultureInfo("en-US");
modCulture.NumberFormat.CurrencyNegativePattern = 1;
Thread.CurrentThread.CurrentCulture = modCulture;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3703 次 |
| 最近记录: |