在.net应用程序cultureInfo中覆盖数字格式

Posted

技术标签:

【中文标题】在.net应用程序cultureInfo中覆盖数字格式【英文标题】:overiding NumberFormat in .net application cultureInfo 【发布时间】:2009-06-26 00:53:01 【问题描述】:

我有一个 .NET 应用程序,有几种不同的语言版本。我基本上在系统文化中加载和保存文件(包含双打),但我想强制使用美国文化格式(逗号作为数字分组,句点作为小数分隔符)始终显示和输入数字。我试图覆盖应用程序文化,但它似乎不起作用。 有没有办法解决这个问题?

【问题讨论】:

【参考方案1】:

CultureInfo.InvariantCulture 的存在是为了以一致的格式保存数据。 More Info on MSDN

对于 UI,如果你真的希望所有格式都是美式的,你可以这样做:

Application.CurrentCulture = new CultureInfo("en-US");

请注意,您需要在每个线程上设置文化。

【讨论】:

如果我设置 Application.CultureInfo = InvariantCulture 会破坏 UI 吗? 我想我误解了你。 InvariantCulture 的目的是以与文化无关的方式存储双打;它不应该用于 UI。为此,我会设置 Application.CurrentCulture = new CultureInfo("en-US").

以上是关于在.net应用程序cultureInfo中覆盖数字格式的主要内容,如果未能解决你的问题,请参考以下文章

.NET 中 CultureInfo 的 CurrentCulture 和 CurrentUICulture 属性有啥区别?

是否可以为 .NET 应用程序或仅为线程设置 CultureInfo?

.Net 中当前 CultureInfo 的距离单位

如何在 ASP .NET MVC 中使用 Resources 和 CultureInfo 更改站点语言?

CultureInfo中重要的InvariantCulture(转)

VB.NET 根据所选文化格式化数字