当前位置: 首页 > 编程语言 > C#

在C#中将小数或字符串转换为货币的最佳方法?

时间:2023-04-10 23:02:07 C#

在C#中将小数或字符串转换为货币的最佳方法?我一直在尝试根据我的选择找到将小数/字符串转换为货币的最佳方法。publicstaticstringreturnWaluta(stringvarS,stringvarSymbol){decimalvarD=decimal.Parse(varS);如果(varSymbol=="EUR"){Thread.CurrentThread.CurrentCulture=newCultureInfo("fr-FR",false);返回String.Format("{0:c}",varD);}elseif(varSymbol=="PLN"){Thread.CurrentThread.CurrentCulture=newCultureInfo("pl-PL",false);返回String.Format("{0:c}",varD);}elseif(varSymbol=="USD"){Thread.CurrentThread.CurrentCulture=newCultureInfo("en-US",false);返回String.Format("{0:c}",varD);}else{//未处理货币MessageBox.Show(varSymbol);返回varS.ToString();}}publicstaticstringreturnWaluta(decimalvarS,stringvarSymbol){if(varSymbol=="EUR"){Thread.CurrentThread.CurrentCulture=newCultureInfo("fr-FR",false);返回String.Format("{0:c}",varS);}elseif(varSymbol=="PLN"){Thread.CurrentThread.CurrentCulture=newCultureInfo("pl-PL",false);返回String.Format("{0:c}",varS);}否则我f(varSymbol=="USD"){Thread.CurrentThread.CurrentCulture=newCultureInfo("en-US",false);返回String.Format("{0:c}",varS);}else{//未处理货币MessageBox.Show(varSymbol);返回varS.ToString();这是好方法,还是我可以做得更好?我正在从SQL数据库中获取数据,并且正在获取十进制值和货币(例如欧元、美元、波兰兹罗提)。这似乎可行,但也许有更好的选择?此外,既然这是一个单线程应用程序,我是在更改Thread.CurrentThread.CurrentCulture时进行全局更改,还是在我从方法返回之前暂时进行更改?恕我直言,CrazyBoys,您可以将所需的文化作为第一个参数传递给string.Format。这比每次都改变当前线程要好。您可能想要设置某种地图或字典来为您创建从货币代码到文化代码的映射——这将大大减少此处的代码行数。返回string.Format(newCultureInfo(map[currencyCode],false),"{0:c}",varD);或者,如果您按货币代码存储CultureInfo实例的映射,您将拥有:以上是C#学习教程:BestwaytoconvertdecimalorstringtocurrencyinC#?如果分享的内容对你有用,需要了解更多C#学习教程,希望你多多关注——returnstring.Format(cultureMap[currencyCode],"{0:c}",varD);Convert.ToDecimal()本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: