gpt4 book ai didi

c# - 使用 decimal.ToString ("C") 和 CultureInfo 的自定义货币符号和小数位

转载 作者:太空狗 更新时间:2023-10-29 18:05:01 24 4
gpt4 key购买 nike

我对 decimal.ToString("C") 覆盖有疑问。基本上我想做的是如下:

CultureInfo usCulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentCulture = usCulture;

NumberFormatInfo LocalFormat = (NumberFormatInfo)NumberFormatInfo.CurrentInfo.Clone();
LocalFormat.CurrencySymbol = "RM";

我想使上面的代码成为一个函数(覆盖 ToString("C")),从而在执行以下代码时:

decimal paid = Convert.ToDecimal(dr["TotalPaids"]);
lblPaids.Text = paid.ToString("C");

结果将是 RM4,900.00 而不是 $4,900.00

如何为 decimal.ToString("C") 创建一个可以解决我的问题的覆盖

提前致谢。

最佳答案

要获得像 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 = ",";

如果您在应用程序启动时执行此操作,那么每次调用 ToString("C") 方法时都会使 ms-MY 格式类似于 en-US,但使用 RM 货币符号。

关于c# - 使用 decimal.ToString ("C") 和 CultureInfo 的自定义货币符号和小数位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2316517/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com