对象属性的区域性格式化

本文关键字:格式化 区域性 属性 对象 | 更新日期: 2023-09-27 18:03:59

我有一个具有数字属性(double)的对象,并且没有特定的区域性设置。此属性在用户登录到网站时从数据库派生。数据库中的区域性格式为en-GB。

当调用该属性并返回到网站上的标签时,将以其本地区域性格式显示数字。

我的问题是,对象属性是否保留en-GB区域性格式,浏览器只是以本地区域性格式显示它,或者,对象是否实际将该属性存储在用户的本地区域性格式中?

我在处理不同文化(多语言网站)的数字格式时遇到了很多麻烦,我想知道我应该如何处理这些属性,因为我必须根据用户在网站上输入的这些数字和其他数字进行计算,以本地格式显示给用户,但总是以本地格式(en-GB)将数据提交回我们的数据库。

对象属性的区域性格式化

该属性不存储区域性。格式是基于Thread.CurrentUICulture的,它是服务器端的区域性。

假设你正在开发一个ASP。NET网站:

CultureInfo culture = new CultureInfo(Request.UserLanguages[0]);
return double.Parse("1.5", culture.NumberFormat);

使用客户端提供的区域性设置转换double类型。

更多信息:http://www.hanselman.com/blog/GlobalizationInternationalizationAndLocalizationInASPNETMVC3JavaScriptAndJQueryPart1.aspx

数值本身就是一个数字。数字的格式取决于如何将该数字的文本表示形式呈现给用户。

解析用户输入的数字值同样取决于您如何允许用户输入该值。只要知道输入字符串的区域性,就可以将其解析回实际数字,这与区域性无关。