私はWebアプリケーションで作業しており、JavaScriptを使用して値を制限または四捨五入しています。テキストボックスに小数値を入力するときは常に、.25、.50、.75、または.00に四捨五入する必要があります。それを行う方法はありますか?.25、.50、.75、.00しか入力できない場合でも問題ありません...しかし、これらの特定の値のみを制限するにはどうすればよいですか?
質問する
1335 次
5 に答える
4
jQueryUIスピナーにはこの機能が組み込まれています。
http://btburnett.com/spinner/example/example.html
また
http://www.htmldrive.net/items/demo/541/jQuery-UI-Spinner-numeric-stepper
于 2012-07-18T09:33:51.487 に答える
4
または:
var n = $('#myInput').val();
alert(.25 * Math.round( 4 * n));
于 2012-07-18T09:37:19.330 に答える
2
ifステートメントが必要です
たとえば、代わりに、次のように、または同様のことを行う、最も近い整数に丸めようとしていると仮定します。
var remainder = value - Math.floor(value);
if(remainder < 0.5)
newValue = Math.floor(value);
else
newValue = Math.floor(value) + 1;
ただし、これを行うには多くの方法があります。0.5ではなく適切な数値を選択するだけで、いくつかの範囲を確認する必要がある場合があります。
私はこれが最良の選択肢であるとは決して言っていませんが、これはあなたにアイデアを与えるはずです。
テキストボックスエントリに関しては、これをすべてのキーアップ/キーダウンなどで実行し、値を次の値に置き換えることができます。newValue
于 2012-07-18T09:24:15.833 に答える
1
var decimal = n - Math.floor(n)
decimal=decimal*100;
var factor = Math.round(decimal/25)
decimal = n + 0.25*factor;
于 2012-07-18T09:28:28.793 に答える
1
Jon Taylorsの回答から明らかでない場合、これを解決するためにifステートメントを使用する適切な方法は次のとおりです。
var floorValue = Math.floor(value);
var remainder = value - floorValue;
if (remainder < 0.325) {
if (remainder < 0.125) {
newValue = floorValue;
} else {
newValue = floorValue + 0.25;
}
} else {
if (remainder < 0.625) {
newValue = floorValue + 0.5;
} else if (remainder < 0.875) {
newValue = floorValue + 0.75;
} else {
newValue = floorValue + 1;
}
}
于 2012-07-18T09:34:53.263 に答える