【发布时间】:2012-06-09 13:38:09
【问题描述】:
我有一个 Web 应用程序(公司内部),它显示了一些带有十进制数字的表单字段。我已经开始用这些数据做一些 Javascript。然后我注意到 Chrome 向我显示了用逗号而不是小数点分隔的十进制数字。但例如 Internet Explorer 显示良好。当我查看我的 C# 代码时,我可以看到,这些数字是真正的小数,它们用小数点分隔。所以似乎代码很好。它必须是 HTML 渲染(语言设置)或 Chrome(我没有检查除 Chrome 和 IE 之外的其他浏览器)中的某些内容。
我以前从未见过这个,所以我应该在哪里搜索错误? (我不能给你看代码。我唯一能告诉你的是 IE 开发控制台显示 93.54 而 Chrome 开发控制台显示 93,54。两者都是同一个文本框的值)。
【问题讨论】:
-
几乎可以肯定是语言环境。在世界的某些地方,
.和,在数字表示上的作用是相反的;有时,.分隔数字组,,分隔数字的整数部分和小数部分,有时则相反。 -
我会押注@Pointy 对此的推理
-
我知道。但我想修复它,因为我无法将 93,54 解析为整数,而它适用于 93.54。并且不要忘记:相同的系统,不同的浏览器。我不确定为什么 Chrome 会以不同的本地格式呈现它,而 IE 不会。
-
我打赌 IE 正在从底层操作系统(显然是 Windows)中获取设置,而另一个默认为您的 Google 帐户首选项或使用基于 IP 的位置来进行最佳猜测。在 Chrome 中,要将其更改为英文,设置位于 Settings->Advanced Settings->Languages
-
大多数编程语言在使用内置数字解析时对区域设置敏感。 Javascript 似乎使用 Number 类合并了这一点。尝试类似:
var myNumber = new Number("123,45"); myNumber.toString(); myNumber.toLocaleString();
标签: c# javascript asp.net html google-chrome