如何解决格式化不同文化中的数字
| 假设文化是不变的,是否有可能用逗号定义其他格式的组分隔符?Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
Console.WriteLine(String.Format(\"{0:#,##0}\",2295));
输出:
2,295
所需的输出:
2.295
不变文化是一种要求,因为来自许多不同区域的货币正在使用用户定义的格式字符串进行格式化。即,对于丹麦,他们已将价格格式定义为\“ {0:0},-\”,而对于爱尔兰,其价格格式可能为\“€{0:#,## 0} \”。
解决方法
当您使用不同的格式字符串时,这并不意味着您必须使用InvariantCulture。如果您有德国的格式字符串,例如您可以使用Culture(\“ de-de \”)格式化此字符串:
String.Format(CultureInfo.GetCultureInfo( \"de-de\" ),\"{0:0},-\",2295) //will result in 2.295,-
String.Format(CultureInfo.GetCultureInfo( \"en-us\" ),2295) //will result in 2,295,-
或者,您可以指定自定义数字格式信息:
NumberFormatInfo nfi = new NumberFormatInfo( )
{
CurrencyGroupSeparator = \":\"
};
String.Format(nfi,2295) //will result in 2:295,-
,正常方法是不使用不变文化。
您确实以不变式指定了格式,但是适当的符号将被替换,#,##0.00
将以1.234,50或1,235.50出现,具体取决于所使用的实际区域性。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。