2014-06-27 44 views
0

我正在使用Jquery旋钮,输入值是通过滑块更改。圆整数到1十进制

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旋钮的输入字段中显示了1.7000000000000002。见下图。

enter image description here 现在我该怎样解决这个问题

+5

为什么不'.toFixed'或'Math.round'工作? –

+0

你在哪里试图使用'toFixed'? – Barmar

+0

我编辑了这篇文章,希望现在清楚 – user2971991

回答

0

我不明白为什么.toFixedMath.round不工作,但我们可以想像,一个alternativeIf你愿意来处理它像一个字符串。

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的旋钮这些链接

JQuery Knob display number change

I can't get jQuery knob to display a value

How to add a value suffix in jQuery.knob

+0

我编辑了我的帖子,希望我的问题现在已经清楚。 – user2971991

+0

我检查了链接,但我似乎找不到解决方案。它真的很烦人...... – user2971991