【问题标题】:Chrome shows comma instead of decimal pointChrome显示逗号而不是小数点
【发布时间】: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


【解决方案1】:

默认情况下,Asp.NET 通过来自浏览器的文化信息呈现 html。 通过设置线程文化或覆盖页面方法,您可以使用静态文化信息进行渲染。

protected override void InitializeCulture()
{
    this.Culture = "en-US";
    this.UICulture = "en-US";
    base.InitializeCulture();
}

【讨论】:

    猜你喜欢
    • 2021-06-28
    • 1970-01-01
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    • 2016-06-18
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多