输入类型=数字:当点后有 3 位数字时,Firefox 将浮点数转换为整数

Posted

技术标签:

【中文标题】输入类型=数字:当点后有 3 位数字时,Firefox 将浮点数转换为整数【英文标题】:Input type=number : Firefox converts floating point number to integer when there are 3 digit after a point 【发布时间】:2015-03-12 17:41:22 【问题描述】:

在 Firefox 34 上,我在 <input type="number"> 上遇到了奇怪的行为。

当输入类似11.001(注意这一点)时,它会转换为110001

仅当点后有 3 位数字时才会发生这种情况。

有没有办法防止这种行为?

顺便说一句:我注意到法语 Windows 7 上的这种行为。

【问题讨论】:

【参考方案1】:

您的浏览器使用法语区域设置,法语使用逗号作为小数分隔符,句点表示千位

来自Mozilla documentation:

本地化

某些类型的允许输入取决于语言环境。在某些语言环境中,1,000.00 是一个有效数字,而在其他语言环境中,输入此数字的有效方式是 1.000,00

Firefox 使用以下启发式方法来确定区域设置以验证用户的输入(至少对于 type="number"):

尝试由元素或其任何父元素上的 'lang'/'xml:lang' 属性指定的语言;

尝试任何 Content-Language HTTP 标头指定的语言或

如果未指定,请使用浏览器的语言环境。

如果您想更改此行为,请使用:

<input lang="en" type="number">

【讨论】:

以上是关于输入类型=数字:当点后有 3 位数字时,Firefox 将浮点数转换为整数的主要内容,如果未能解决你的问题,请参考以下文章

十进制一位输入类型仅数字 Ionic 3 最新版本 (3.9.2) 我正在使用

EditTest输入类型设置

javaScript保留三位有效数字

javaScript保留三位有效数字

输入类型 = 数字验证在角度中无法正常工作

Java中的float精确多少位?