我通常会使用这个:
double test = 1234.5678;
Console.WriteLine(test.ToString("C"));
效果很好。我对加元进行了“覆盖”,以确保人们能看到美元和加元之间的差异:
var canadaFi = (NumberFormatInfo)CultureInfo.GetCultureInfo("en-CA").NumberFormat.Clone();
canadaFi.CurrencySymbol = "C$ ";
Console.WriteLine(val.ToString("C", canadaFi));
但现在人们要求输出如下:
1234,56 加元
所以我用:
RegionInfo ca = new RegionInfo("en-CA");
Console.WriteLine(string.Format("{0} {1}", ca.ISOCurrencySymbol, test.ToString("f2")));
这可行,但我想知道这是否是在浮点/双精度前获取 3 char iso 货币符号的最佳方法。所以不是使用CultureInfo
我现在必须使用的RegionInfo
吗?