1

我有一个带有数字属性(双精度)的对象,并且没有特定的文化集。当用户登录网站时,此属性来自数据库。数据库中的文化格式为 en-GB。

当属性被调用并返回到网站上的标签时,数字会以其当地文化格式显示。

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

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

4

2 回答 2

2

酒店不储存文化。格式基于Thread.CurrentUICulture,这是服务器端的文化。

假设您正在开发一个 ASP.NET 网站:

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

这将使用客户端提供的文化设置转换双精度。

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

于 2013-03-15T11:33:12.530 回答
1

数值本身只是一个数字。数字的格式取决于您如何向用户呈现该数字的文本表示。

从用户输入中解析数字值将再次取决于您允许用户输入值的方式。只要您知道输入字符串的文化,就可以将其解析回一个与文化无关的实际数字。

于 2013-03-15T11:38:40.100 回答