只有一个数字的 Rangeslider 奇数输出值

Rangeslider odd output value on only one number

我有一些 'odd' 问题正在努力解决。

我使用的是 RangesliderJS (https://rangeslider.js.org),大部分情况下一切正常。但是,我需要输出和实际字段值略有不同(由于计算其他内容的方式,但我认为这在很大程度上无关紧要)。滑块显示百分比 - 从零到十。该值需要为 0.01 表示 1%,0.1 表示 10% 等

但是,对于用户,我需要显示 'real' 个数字 - 即 1%、5% 等

我就是这样做的;

$(document).ready(function() {
    $('input[type="range"]').rangeslider({
polyfill : false,
onInit : function() {
    this.output = $( '<div class="range-output" />' ).insertAfter( this.$range ).html( this.$element.val() * 100 );
},
onSlide : function( position, value ) {
    this.output.html( value * 100 );
    console.log(this.value);
}
});
});

效果很好。然而,我有一个奇怪的场景,应该输出为 7% 的实际显示为 7.000000000000001% - 每隔一个数字显示它应该的,并且控制台也正确地记录值 0.07。

这纯粹是为了 UI 目的,所以我很乐意 'hack' 如果有修复,但我很想知道为什么它也这样做(JS 不是我的强项!)

虽然我仍然 none-the-wiser 知道原因,但我已经使用 Math.round 解决了这个问题;

      $('input[type="range"]').rangeslider({
polyfill : false,
onInit : function() {
    this.output = $( '<div class="range-output" />' ).insertAfter( this.$range ).html( this.$element.val() * 100 );
},
onSlide : function( position, value ) {
    this.output.html(Math.round( value * 100 ));
    console.log(this.value);
}
});
});