我正在开发一个Web应用程序并使用javascript来限制或舍入值。每当我在文本框中输入任何小数值时,它应四舍五入为.25,。50,。75或.00。任何想法如何做到这一点?即使只能输入.25,。50,。75和.00也没关系...但是如何仅限制这些特定值呢?
答案 0 :(得分:4)
jQuery UI微调器内置了此功能。
http://btburnett.com/spinner/example/example.html
OR
http://www.htmldrive.net/items/demo/541/jQuery-UI-Spinner-numeric-stepper
答案 1 :(得分:4)
或者:
var n = $('#myInput').val();
alert(.25 * Math.round( 4 * n));
答案 2 :(得分:2)
你只需要一个if语句
例如,我们假设您尝试舍入到最接近的整数,您将执行以下操作或类似的操作:
var remainder = value - Math.floor(value);
if(remainder < 0.5)
newValue = Math.floor(value);
else
newValue = Math.floor(value) + 1;
然而,有许多方法可以做到这一点,你只需要选择适当的数字而不是0.5,并且可能需要检查几个范围。
我绝不是说这是最好的选择,但这应该会给你一个想法。
至于文本框条目,您可以运行每个keyup / keydown等,并将值替换为newValue
答案 3 :(得分:1)
var decimal = n - Math.floor(n)
decimal=decimal*100;
var factor = Math.round(decimal/25)
decimal = n + 0.25*factor;
答案 4 :(得分:1)
如果Jon Taylorlors的答案不明显,使用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;
}
}