如何获取当前文化格式的数字货币
Posted
技术标签:
【中文标题】如何获取当前文化格式的数字货币【英文标题】:How to get Current culture formatted number currency 【发布时间】:2019-05-21 12:50:44 【问题描述】:使用以下方式,可以获得当前文化的 2 位数货币。
string.Format(CultureInfo.CurrentCulture, "0:C2", amount)
结果为:$1,000.00
我们如何使用美元或欧元等货币符号获取货币,如下所示,
预期结果:1,000.00 USD
【问题讨论】:
【参考方案1】:这可以使用RegionInfo
类来实现:
decimal amount = 1000m;
CultureInfo culture = CultureInfo.CurrentCulture;
RegionInfo region = RegionInfo.CurrentRegion; //or new RegionInfo(...)
string formattedCurrency = string.Format(CultureInfo.CurrentCulture, "0:C2 1", amount, region.ISOCurrencySymbol);
在上面的代码中,formattedCurrency
产生一个字符串值"$1,000.00 USD"
。
如果您不希望使用货币符号,您可以执行类似Replace(culture.NumberFormat.CurrencySymbol, "")
的操作,或者使用N
说明符代替C
。两者都产生"1,000.00 USD"
的值(与我的地区/文化)。
此问题解决了此特定主题:Format a double value like currency but without the currency sign (C#)
请注意,接受的答案(使用N
)似乎并非对所有文化都友好。
【讨论】:
是否有理由替代使用 N ?反之亦然? 当然@CodeStranger。请参阅对此答案的第一条评论:***.com/a/1048672/2957232。我对其他文化的表现形式没有太多经验,因此这里似乎首选替换。另一个答案使克隆的NumberFormatInfo
上的 CurrencySymbol 空白。有几种方法可以给这只猫剥皮。以上是关于如何获取当前文化格式的数字货币的主要内容,如果未能解决你的问题,请参考以下文章