在.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一切都很好。什么可能是错的?
答案 0 :(得分:2)
The numeric ("N"
) format specifier使用您的CurrentCulture
设置。
这意味着您的CurrentCulture
空格为NumberGroupSeparator
,,
为NumberDecimalSeparator
。
作为解决方案,您可以Clone
CurrentCulture
ToString
,设置您想要的属性,并将 文化用作var clone = (CultureInfo) CultureInfo.CurrentCulture.Clone();
clone.NumberFormat.NumberDecimalSeparator = ",";
clone.NumberFormat.NumberGroupSeparator = ".";
ltNumber.Text = (12345.12).ToString("N", clone); // 12.345,12
中的第二个参数} 方法。等;
@Transactional
public objectName getObjectByTitle(String title){
TypedQuery< objectName > query = em.createQuery(
"SELECT b FROM tableName AS b WHERE b.title = :title",
objectName.class);
return query.getSingleResult();
}
我认为这些属性不会根据操作系统版本进行更改。这一切都与您使用的文化设置有关。