用javascript控制浮点值
为了控制我的输入类型并验证其值在我的表单中是一个浮点值,我用javascript处理它,如下所示:用javascript控制浮点值,javascript,Javascript,为了控制我的输入类型并验证其值在我的表单中是一个浮点值,我用javascript处理它,如下所示: function verifierNombre () { var champ=document.getElementById("nperformed"); var str = champ.value; if(str.value==' '){champ.focus();} if (isNaN(str)) { alert("Invalid Valid! the field must be a numb
function verifierNombre () {
var champ=document.getElementById("nperformed");
var str = champ.value;
if(str.value==' '){champ.focus();}
if (isNaN(str)) {
alert("Invalid Valid! the field must be a number");
champ.focus();
return false;
}
return true;
}
但它仍然是错误的,因为它不接受真正的浮动。
因此,当输入像“11,2”这样的值时,警报将被解除
我想知道如何使用javascript控制浮点值。
谢谢。我认为问题可能是它没有考虑
11,2
是一个有效的浮动,而是期望类似11.2
的东西。尝试一下11.2
,看看它是否有效。如果这是问题所在,我不确定是否可以设置一些本地化选项,或者在运行isNaN
之前是否需要手动交换这两个选项
编辑啊,确认一下:
在许多国家,通常使用小数点逗号代替小数点。不幸的是,在JavaScript中,无论操作系统中设置了哪个国家,都必须使用小数点。在JavaScript中,只有小数点后的数字才会用于计算,这将产生不正确的结果
我认为问题可能在于,它没有将
11,2
视为有效的浮点值,而是期望类似11.2
的值。尝试一下11.2
,看看它是否有效。如果这是问题所在,我不确定是否可以设置一些本地化选项,或者在运行isNaN
之前是否需要手动交换这两个选项
编辑啊,确认一下:
在许多国家,通常使用小数点逗号代替小数点。不幸的是,在JavaScript中,无论操作系统中设置了哪个国家,都必须使用小数点。在JavaScript中,只有小数点后的数字才会用于计算,这将产生不正确的结果
11,2
不是有效的浮点。像Javascript一样(据我所知),每种编程语言都使用
作为小数点。因此,请尝试使用11.2
如果您想接受,
,您可以这样做:
function verifierNombre() {
var champ=document.getElementById("nperformed");
var str = champ.value;
if(str.value==' ') champ.focus();
if (isNaN(str.replace(',','.')) {
alert("Invalid Valid! the field must be a number");
champ.focus();
return false;
}
return true;
}
function localize_float(champ) {
champ.value = champ.value.replace(",",".");
}
<form name="..." action="..." method="..." onsubmit="localize_float(document.getElementById("nperformed");)">
在表单中,您添加了onsubmit
-属性,如下所示:
function verifierNombre() {
var champ=document.getElementById("nperformed");
var str = champ.value;
if(str.value==' ') champ.focus();
if (isNaN(str.replace(',','.')) {
alert("Invalid Valid! the field must be a number");
champ.focus();
return false;
}
return true;
}
function localize_float(champ) {
champ.value = champ.value.replace(",",".");
}
<form name="..." action="..." method="..." onsubmit="localize_float(document.getElementById("nperformed");)">
11,2
不是有效的浮点。像Javascript一样(据我所知),每种编程语言都使用
作为小数点。因此,请尝试使用11.2
如果您想接受,
,您可以这样做:
function verifierNombre() {
var champ=document.getElementById("nperformed");
var str = champ.value;
if(str.value==' ') champ.focus();
if (isNaN(str.replace(',','.')) {
alert("Invalid Valid! the field must be a number");
champ.focus();
return false;
}
return true;
}
function localize_float(champ) {
champ.value = champ.value.replace(",",".");
}
<form name="..." action="..." method="..." onsubmit="localize_float(document.getElementById("nperformed");)">
在表单中,您添加了onsubmit
-属性,如下所示:
function verifierNombre() {
var champ=document.getElementById("nperformed");
var str = champ.value;
if(str.value==' ') champ.focus();
if (isNaN(str.replace(',','.')) {
alert("Invalid Valid! the field must be a number");
champ.focus();
return false;
}
return true;
}
function localize_float(champ) {
champ.value = champ.value.replace(",",".");
}
<form name="..." action="..." method="..." onsubmit="localize_float(document.getElementById("nperformed");)">
11,2不是有效的浮点,因为“小数点”必须是点(.)而不是逗号(,) 将逗号替换为点:
var str = champ.value;
str = str.replace(",", ".");
而且
这不是一个很好的条件。改为使用修剪函数并与“.”进行比较。11,2不是有效的浮点,因为“小数点”必须是点(.)而不是逗号(,) 将逗号替换为点:
var str = champ.value;
str = str.replace(",", ".");
而且
这不是一个很好的条件。改为使用微调函数,并与“.”进行比较。javascript中的所有数字都已经是64位浮点数。很抱歉,这意味着已启动;)javascript中的所有数字都已经是64位浮点数。很抱歉,这意味着已启动;)我个人会让localize_float接受一个参数并返回更正的金额,以防页面上有其他元素需要更正。我个人会让localize_float接受一个参数并返回更正的金额,如果页面上还有其他元素需要更正,我只是认为逗号是一个拼写错误,我只是认为逗号是一个拼写错误。