微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决Rangeslider奇数输出值只有一个数字

我正在努力解决一个“奇怪”的问题。

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

但是,对于用户,我需要显示“真实”数字-即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的目的,所以我很乐意“破解”一个修复程序,但是我很想知道为什么它也这样做(JS不是我的专长!)

解决方法

虽然我仍然不清楚原因,但是我已经通过使用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);
}
});
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。