Jquery UI 滑块不正确的最大值
Jquery UI Slider incorrect max value
我正在初始化一个 jquery ui 滑块,例如值为 .01,最小值为 .01,最大值为 5000。我的问题是最大值正在停止在 4999.990000000001。你能看出我做错了什么吗?
$( "#sliderModal" ).slider({
value:r.min_price/100,
min: r.min_price/100,
max: r.max_price/100,
step:0.01,
slide: function( event, ui ) {
$( "#amountModal" ).val(ui.value );
}
});
这是一个与浮点值相关的舍入误差。修复它的最简单方法是改用整数:
$( "#sliderModal" ).slider({
value:r.min_price,
min: r.min_price,
max: r.max_price,
step:1,
slide: function( event, ui ) {
$( "#amountModal" ).val(ui.value*100);
}
});
请注意,我删除了所有 /100
操作并将该值乘以 100。
这假定该值未显示为数字 - 如果是,您将得到该数字乘以 100 而不是您正在寻找的漂亮、整洁的两位小数.
快速修复 - 浮点数
在jquery-ui.js和_calculateNewMax函数中,改变
Math.floor(..
到
Math.round(..
所以,如果有
aboveMin = Math.floor((+(max-min).toFixed(this._precision()))/step)*step;
至
aboveMin = Math.round((+(max-min).toFixed(this._precision()))/step)*step;
注意*:您需要在本地编辑和link修改后的js文件。
注意**:选中 link 以指向 jquery-ui.js 而不是 jquery-ui.min.js
已检查 v1.11.4
希望对您有所帮助,
吉安尼塞普
我正在初始化一个 jquery ui 滑块,例如值为 .01,最小值为 .01,最大值为 5000。我的问题是最大值正在停止在 4999.990000000001。你能看出我做错了什么吗?
$( "#sliderModal" ).slider({
value:r.min_price/100,
min: r.min_price/100,
max: r.max_price/100,
step:0.01,
slide: function( event, ui ) {
$( "#amountModal" ).val(ui.value );
}
});
这是一个与浮点值相关的舍入误差。修复它的最简单方法是改用整数:
$( "#sliderModal" ).slider({
value:r.min_price,
min: r.min_price,
max: r.max_price,
step:1,
slide: function( event, ui ) {
$( "#amountModal" ).val(ui.value*100);
}
});
请注意,我删除了所有 /100
操作并将该值乘以 100。
这假定该值未显示为数字 - 如果是,您将得到该数字乘以 100 而不是您正在寻找的漂亮、整洁的两位小数.
快速修复 - 浮点数
在jquery-ui.js和_calculateNewMax函数中,改变
Math.floor(..
到
Math.round(..
所以,如果有
aboveMin = Math.floor((+(max-min).toFixed(this._precision()))/step)*step;
至
aboveMin = Math.round((+(max-min).toFixed(this._precision()))/step)*step;
注意*:您需要在本地编辑和link修改后的js文件。
注意**:选中 link 以指向 jquery-ui.js 而不是 jquery-ui.min.js
已检查 v1.11.4
希望对您有所帮助,
吉安尼塞普