我正在初始化一个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 );
}
});
答案 0 :(得分:1)
它是与浮点值相关的舍入误差。修复它的最简单方法是使用整数:
$( "#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而不是您那么漂亮,整齐的两位小数位数寻找。
答案 1 :(得分:1)
快速修复 - 浮动数字
在 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;
注意*:你需要编辑和链接modded js文件localy。
注意**:检查指向jquery-ui.js的链接,而不是jquery-ui.min.js
检查v1.11.4
希望它有所帮助,
giannisepp