爱沙尼亚语(et-EE)语言环境中的小数分隔符在 Windows 服务器中以点而不是逗号的形式出现

Posted

技术标签:

【中文标题】爱沙尼亚语(et-EE)语言环境中的小数分隔符在 Windows 服务器中以点而不是逗号的形式出现【英文标题】:decimal separator in Estonian(et-EE) locale is coming as dot instead of comma in windows server 【发布时间】:2017-07-11 11:53:17 【问题描述】:

当我尝试使用以下代码查找名为 Estonian Estonia(et-EE) 的特定语言环境的小数分隔符时,它以点而不是逗号的形式出现(仅在 Windows 服务器中),但在我的本地 Windows 机器中它是以逗号形式出现,这是此语言环境的正确小数分隔符。谁能帮助我如何获得适合此语言环境的小数分隔符?

CultureInfo cultureInfo = new CultureInfo("et-EE");
String decimalSeparator = cultureInfo.NumberFormat.CurrencyDecimalSeparator;

【问题讨论】:

我的本地是windows 10,windows服务器是“Windows Server 2012 R2” 我本地的默认文化是 en-US。此外,在上面的代码中,我明确提到了一种文化并试图获取该特定文化的小数分隔符。我不知道当前的线程文化会如何影响这一点。 IIS 在哪个用户帐户下运行? (请在您的帖子中添加详细信息,而不是作为 cmets) 【参考方案1】:

您的示例代码不会更改任何格式设置...

只要您不向格式化函数提供文化信息或不更改 System.Threading.Thread.CurrentThread.CurrentCulture,就会出现这种情况。

因此,如果您的默认文化是本地计算机上的爱沙尼亚语,那么该设置将是正确的。在服务器上,它更可能是通用文化,您应该通过更改 System.Threading.Thread.CurrentThread.CurrentCulture 来覆盖当前文化,或者您可以在 web.config 中设置它,如此处所述https://msdn.microsoft.com/en-us/library/bz9tc508.aspx

【讨论】:

【参考方案2】:

我得到了这个问题的解决方案,对于这个语言环境 et-EE,CurrencyDecimalSeparator 在 Windows 服务器中给出点,而 NumberDecimalSeparator 在 Windows 服务器中给出逗号,但在本地 Windows 机器中,两者都只给出逗号。

【讨论】:

以上是关于爱沙尼亚语(et-EE)语言环境中的小数分隔符在 Windows 服务器中以点而不是逗号的形式出现的主要内容,如果未能解决你的问题,请参考以下文章

Postgresql 排序语言特定字符(排序规则)

文本框只能输入数值,小数点,负数的问题

强制点(“。”)作为java中的小数分隔符

强制点(“。”)作为java中的小数分隔符

Qt 小数分隔符

Grails 与语言环境无关的十进制数据绑定