2014-04-23 11 views
1

나는 sinus와 cosinus 그래프를 만들려고합니다. 다음과 같이 푸시 된 데이터가 있습니다.소수점 하나만 사용하여 하이 차트로 데이터를 푸시하는 방법은 무엇입니까?

data: (function exp() { 
       var data1 = [], 
        //i = 0, 
        x = 0, 
        y = 0; 

       for (i = -10; i <= 10; i = i + 0.1) { 
        //x = i.toFixed(4); 
        x = i; 
        y = Math.sin(i); 
        data1.push({ 
         //x: Math.round(i * 10000)/10000, 
         x: x, 
         y: y, 
        }); 
        if ((y.toFixed(4) == 0) || (y.toFixed(4) == -0)) { 
         //var x = Math.sin(Math.round(i * 10000)/10000); 
         //var y = Math.round(Math.sin(i) * 10000)/10000; 
         addtext(x, y); 
        } 
       } 
       return data1; 
     })() 
    }, 

따라서 값은 -10이어야합니다. -9.9; -9.8, -9.7 등 ...하지만 그래프 (http://jsfiddle.net/K5Zhr/4/)를 보면 x 값이 있습니다. -10; -9.9; -9.8이고, 다음에 -9.700000000000001이 있고 모든 다음 x 값은 같은 방식으로 엉망입니다.

내가 및 .toPrecision을 .toFixed 방법을 사용하려고했지만 (예를 들어) 그들이 만든 점 [0, 죄 (0)] [-0.0000, -0.0000] 같은 것으로, 무엇이다 물론 나쁜, x 값 -0.000000000000187 걸리는 becuse ... 아무도 나를 소수점 1 자리로 그냥 데이터를 밀어 도와 드릴까요?

답변

2

입력 x 값인 that's just how computers store numbers을 조정하지 마십시오. 툴팁 둥근 또는 낭패 번호를 표시하려면

, 당신은 footerFormat, headerFormatpointFormat을 삭제하고 formatter 옵션을 사용하여 툴팁을 완전히 제어해야합니다. 다음과 같이 입력하십시오 :

 formatter: function() { 
      var s = '<b>'+ Highcharts.numberFormat(this.x,1) +'</b>';     
      $.each(this.points, function(i, point) { 
       s += '<br/>'+ point.series.name +': '+ 
        Highcharts.numberFormat(this.point.y,4); 
      }); 
      return s; 
     } 

필요한 것을 얻을 수 있습니다. 피들 here.