我從用戶那裏獲得輸入,它需要是整數或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
你的問題是什麼? –