Aga*_*rue 8 c# currency decimal
我有decimal.ToString("C")覆盖问题.基本上我想做的是如下:
CultureInfo usCulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentCulture = usCulture;
NumberFormatInfo LocalFormat = (NumberFormatInfo)NumberFormatInfo.CurrentInfo.Clone();
LocalFormat.CurrencySymbol = "RM";
Run Code Online (Sandbox Code Playgroud)
我想使上面的代码成为一个函数(覆盖ToString("C")),从而执行以下代码时:
decimal paid = Convert.ToDecimal(dr["TotalPaids"]);
lblPaids.Text = paid.ToString("C");
Run Code Online (Sandbox Code Playgroud)
结果将是RM4,900.00而不是$ 4,900.00
如何为此创建覆盖decimal.ToString("C")将解决我的问题
提前致谢.
Mik*_*Two 16
要获得RM 11,123,456.00之类的格式,还需要设置以下属性
CurrentCulture modified = new CultureInfo(Thread.CurrentThread.CurrentCulture.Name);
Thread.CurrentThread.CurrentCulture = modified;
var numberFormat = modified.NumberFormat;
numberFormat.CurrencySymbol = "RM";
numberFormat.CurrencyDecimalDigits = 2;
numberFormat.CurrencyDecimalSeparator = ".";
numberFormat.CurrencyGroupSeparator = ",";
Run Code Online (Sandbox Code Playgroud)
如果你在应用程序启动时这样做,那么应该使ms-MY格式像en-US一样,但每次调用ToString("C")方法时都使用RM货币符号.
如果我理解你的问题你想要的是用RM代替$.如果是这样,您需要传递自定义格式...
lblPaids.Text = paid.ToString("C", LocalFormat);
Run Code Online (Sandbox Code Playgroud)