2012-05-08 3 views
-1

ユーザーからの入力があり、それは整数または0.5の倍数である必要があります。入力された数値を整数または "半分"にすることを確認してください

例えば、7235.5はすべて有効ですが、3.12.7はありません。

つまり、ユーザーが2.3を入力すると、2.5のキー入力しかできないという警告が表示されます。

この検証の実行方法を教えてください。

+2

ご質問はありますか? –

答えて

2

文字列を入力しているので、浮動小数点数は正しく取得することが難しいと知られています:-) の文字列の入力を確認してから、をfloatに変換することをお勧めします。

文字が.の場合は、最後の2文字が.5であることを確認してください。

許可する内容によっては、他のケースも確認してください。たとえば、7.02.50000000のように有効です。

簡潔にするために、私は単純に入力が整数であるか、末尾に.5でなければならないと述べています。

+0

ああ、分かりません。実際に小数点以下1桁を得るには浮動小数点数の精度が十分にあるように思えます。 –

+0

はい、ただし、ユーザーが_enters_ '2.4999999999999999'を入力した場合、それに不満を言いたいのですか、それとも静かに' 2.5'に変更したいですか? – paxdiablo

+1

私はそれを政府の仕事のために十分に近づけると思います。しかし、あなたは正しい。最後の数字が0または5に制限されるだけで十分です。 –

1
$('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

2.6についてはどうですか? –

+0

ああ、まあまあ私は正確な平等のどちらかと一緒に行くだろうと確信していません。 :)フロートは常に等号にうまく反応するとは限りません。 –

+0

なぜではないか: '(this.value%0.5)/ *値が0.5の倍数でない* /' – RobG

関連する問題