IIS使用错误pt-PT

IIS use wrong pt-PT

在 .net 4.0、Web 表单和 IIS 8 中 我在 web.config 中有这个:

<globalization culture="pt-PT" uiCulture="pt-PT" />

当我在 C# 中这样做时:

ltNumber.Text = (12345.12).ToString("N");

我明白了:12 345,12 但是输出必须是12.345,12

这在 windows 10 开始看起来很糟糕。windows 7 一切都很好。有什么问题吗?

The numeric ("N") format specifier 使用您的 CurrentCulture 设置。

这意味着您的 CurrentCulture 有白色 space 作为 NumberGroupSeparator and , as a NumberDecimalSeparator

作为解决方案,您可以 Clone 您的 CurrentCulture,随心所欲地设置这些属性,并使用 that culture 作为第二个参数你的 ToString 方法。喜欢;

var clone = (CultureInfo) CultureInfo.CurrentCulture.Clone();
clone.NumberFormat.NumberDecimalSeparator = ",";
clone.NumberFormat.NumberGroupSeparator = ".";
ltNumber.Text = (12345.12).ToString("N", clone); // 12.345,12

我认为这些属性不会根据操作系统版本而改变。一切都与您使用的文化设置有关。