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

希望对您有所帮助,

吉安尼塞普