我正在使用Firefox。如果将ParseFloat()或Number()应用于字符串或数字,然后将值更新为输入形式,则所显示数字的格式为逗号而不是点。但是由于一个神秘的原因,当一个人使用3个小数时它不起作用。
例如。
1.1 --> 1,1
1.23 --> 1,23
1.3456 --> 1,3456
但
1.234 --> 1.234
真的很奇怪
<input type="number" onKeyPress="if (event.keyCode == 13) { DotToComma(this); }"></input>
function DotToComma(that) {
if (that.value.indexOf(".") >= 0) {
var str = that.value;
that.value = Number(str);
}
}
你知道为什么吗
我正在开发WebAPP,并且我的代码仅在用逗号而不是点输入数字时才有效。
最佳答案
看来Javascript试图将字符串解析回浮点数而不是字符串。
只需添加toString()
函数以确保将其转换。您也可以使用String()
对象进行转换。
function DotToComma(that) {
if (that.value.indexOf(".") >= 0) {
var str = that.value.toString();
that.value = Number(str);
}
}
您也可以像这样简化代码:
that.value = parseFloat(that.value.toString().replace(/./, ','));
关于javascript - 输入表格将点更改为逗号第三个十进制错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33216318/