我从用户那里获得输入,它需要是整数或0.5
的某个倍数。验证输入的数字是整数还是“一半”
例如,7
,23
和5.5
都是有效的,但3.1
和2.7
不是。
换句话说,如果用户键入2.3
,将会有一个警告,告诉他们他们只能键入2.5
。
我该如何去执行此验证?
我从用户那里获得输入,它需要是整数或0.5
的某个倍数。验证输入的数字是整数还是“一半”
例如,7
,23
和5.5
都是有效的,但3.1
和2.7
不是。
换句话说,如果用户键入2.3
,将会有一个警告,告诉他们他们只能键入2.5
。
我该如何去执行此验证?
因为他们正在输入字符串,并且浮点数很难得到正确的:-)我建议检查字符串输入本身,之前转换为浮点数。
如果它包含.
字符,请确保最后两个字符是.5
。
您可能还想检查其他情况,具体取决于您希望允许的情况。例如,7.0
可能与2.50000000
一样有效。
但是,为了简单起见,我只是说,输入必须是一个整数,或以.5
结尾。
哦,我不知道。似乎真的应该有足够的精度浮点数,以获得1位小数点的权利。 –
是的,但是如果用户_enters_'2.4999999999999999',你想抱怨它还是让它默默修改为'2.5'? – paxdiablo
我会尽量接近政府的工作。但你说得对;只需将最后一位数字限制为0或5就足够了。 –
$('button').on('click', function() {
var val = Number($('input[type=text]').val()).toFixed(1);
if(val % 0.5) {
alert('This value should' + (parseInt(val) + 0.5));
}
});
2.6呢? –
啊,我不确定我是否会与确切的平等。 :)浮动并不总是等同的迹象。 –
为什么不能:'if(this.value%0.5)/ *值不是0.5的倍数* /' – RobG
你的问题是什么? –