舍入整数到1位小数

时间:2014-06-27 06:31:53

标签: javascript rounding jquery-knob

我正在使用Jquery旋钮,输入值通过滑块更改。

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");
}

现在我要围绕&#34; buf&#34;变量为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。见下图。

enter image description here 现在我该如何解决这个问题

1 个答案:

答案 0 :(得分:0)

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

CheckThis

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 display number change

I can't get jQuery knob to display a value

How to add a value suffix in jQuery.knob