0

我正在使用 Jquery Knob,输入值通过滑块进行更改。

window.onload = function(){
   var elements=document.querySelectorAll('input[type=range]')
   for(var i = 0; i < elements.length; i++){ 
      elements[i].addEventListener('change',calcul , false);
   }
}

function calcul(){
    var elements = document.querySelectorAll('input[type="range"]')
    var len = 0
    var buf = 0
    for(var i=0;i<elements.length;i++) {
        if(elements[i].parentNode.parentNode.style.display != 'none'){
            buf += parseInt(elements[i].value)
            len++
        }
    }
    buf = len === 0 ? 0 : buf/len
    document.getElementById("knob").value=buf;
    $("#knob").trigger("change");
}

现在我想将“buf”变量四舍五入到小数点后 1,我尝试使用 toFixed 和 Math.round .... 但我无法让它工作,有人可以帮我吗?

编辑:我现在使用这个,如果我使用 console.log 一切顺利。

buf = len === 0 ? 0 : buf/len;
gem_cijfer = buf.toFixed(1);
document.getElementById("knob").value=gem_cijfer;
document.getElementById("form_knob").value=gem_cijfer;
$("#knob").trigger("change");

示例问题,在 console.log 中显示 1.7。但是在 Jquery Knob 的输入字段中,它显示 1.7000000000000002。见下图。

在此处输入图像描述 现在我该如何解决这个问题

4

1 回答 1

0

我不明白为什么.toFixed并且Math.round不工作,但如果您愿意像字符串一样处理它,我们可以考虑替代方案。

检查这个

function RoundToOne(val)
{
var length =val.indexOf('.');
var newVal= val.substring(0,length+2);
return newVal;
}

http://jsfiddle.net/8XQen/1/

不要忘记添加验证

编辑

我不认为你的问题.toFixedMath.round在你的旋钮上

检查这些关于 jQuery Knob 的链接

JQuery Knob显示数字变化

我无法让 jQuery 旋钮显示值

如何在 jQuery.knob 中添加值后缀

于 2014-06-27T06:44:57.983 回答