我使用下面显示的量:经由代码在C#改变货币
的String.Format( “{0:C}”,item.Amount)
该显示£9.99
如果我希望应用程序能够控制货币,并能够将货币改为一天它是没问题,但什么
$ 9.99加入
如何更改货币格式通过代码
我使用下面显示的量:经由代码在C#改变货币
的String.Format( “{0:C}”,item.Amount)
该显示£9.99
如果我希望应用程序能够控制货币,并能够将货币改为一天它是没问题,但什么
$ 9.99加入
如何更改货币格式通过代码
指定所述呼叫中的文化Format
:
decimal value = 123.45M;
CultureInfo us = CultureInfo.GetCultureInfo("en-US");
string s = string.Format(us, "{0:C}", value);
CultureInfo info = new CultureInfo (System.Threading.Thread.CurrentThread.CurrentCulture.LCID);
info.NumberFormat.CurrencySymbol = "EUR";
System.Threading.Thread.CurrentThread.CurrentCulture = info;
Console.WriteLine (String.Format ("{0:C}", 45M));
或
NumberFormatInfo info = new NumberFormatInfo();
info.CurrencySymbol = "EUR";
Console.WriteLine (String.Format (info, "{0:C}", 45M));
You shouldn不改变当前的文化只是为了格式化一个号码... – 2009-06-19 09:49:27
这是正确的,你不应该改变线程的当前文化,特别是不要简单地改变货币符号。使用CultureInfo.GetCultureInfo(“文化字符串”)来获取适当的文化信息(以及所有格式设置)。 – Groo 2009-06-19 09:55:23
货币符号由CultureInfo.CurrentCulture.NumberFormat.CurrencySymbol定义。该属性为读/写,但如果你试图改变它,因为NumberFormatInfo.IsReadOnly会是真的,你可能会得到一个异常...
或者,你可以通过明确使用特定的NumberFormatInfo格式化数字:
NumberFormatInfo nfi = (NumberFormatInfo)CultureInfo.CurrentCulture.NumberFormat.Clone();
nfi.CurrencySymbol = "$";
String.Format(nfi, "{0:C}", item.Amount);
如果您更改显示的金额货币,那么您也正在更改其计量单位。 £1 <>€1 <> $ 1。你在这里的业务需求绝对是肯定?
不要忘记,您需要单独存储价格,或允许(随时间变化)汇率 - 否则,我会以美元订购英镑信用卡:) – 2009-06-19 09:58:36