我有一个显示数字的ASP.net MVC网站。我可以以某种方式确定用户的计算机是否配置为使用逗号或点作为小数点分隔符?如何确定ASP中的小数点分隔符MVC
我可以在Request.UserLanguages中检查不同的语言,但对于确定小数点分隔符来说不太准确。
我有一个显示数字的ASP.net MVC网站。我可以以某种方式确定用户的计算机是否配置为使用逗号或点作为小数点分隔符?如何确定ASP中的小数点分隔符MVC
我可以在Request.UserLanguages中检查不同的语言,但对于确定小数点分隔符来说不太准确。
你可以看到here如何从浏览器语言CultureInfo
- 这将让你 一个CultureInfo
对象,你可以使用这样的:
var sep = browserCulture.NumberFormat.NumberDecimalSeparator;
MVC在处理小数值时存在问题。
Haack对此有一个很好的post。它向你展示了如何克服这一点。
由于您询问最终用户的计算机,答案是否定的。不幸的是,网络浏览器不会给你这样的信息。您可以获得的所有内容都是用户的首选语言,但它是通过HTTP Accept-Language标头发送到服务器的浏览器设置。而已。
如果你认为如果JavaScript会给你的话,答案是不会的。它运行在沙箱中,因此它无法访问操作系统。
我不确定Flash是否可以访问此类信息(可能),但可能会被最终用户阻止。对于ActiveX控件也是如此,再加上它不是跨平台的。
因此,坚持从网页浏览器检测到的文化和相应的格式编号,它只是更容易(虽然它不会支持最终用户修改操作系统设置)。
谢谢 - 这与我所需要的非常接近,但由于小数分隔符不一定与语言一致,因此它不适用于任何情况。 – Preli