Javascript 从科学记数法到十进制记数法在海图中不起作用

Javascript 从科学记数法到十进制记数法在海图中不起作用,javascript,charts,highcharts,scientific-notation,Javascript,Charts,Highcharts,Scientific Notation,我正在构建一个包含一些超小值的highchart。我的问题是 当数字为e-7时,图表不会转换科学数据 从符号到数字符号 这是我的密码 $(document).ready(function() { var data = [[1532476800000,9.888550207585507e-7],[1532995200000,9.566888695224366e-7],[1533081600000,9.217248059141058e-7]]; var options = {

我正在构建一个包含一些超小值的highchart。我的问题是

当数字为e-7时,图表不会转换科学数据 从符号到数字符号

这是我的密码

     $(document).ready(function() {
  var data = [[1532476800000,9.888550207585507e-7],[1532995200000,9.566888695224366e-7],[1533081600000,9.217248059141058e-7]];
  var options = {
    chart: {
      renderTo: 'container',
      type: 'line',

    },
    title: {
      text: 'Fruit Consumption'
    },
        xAxis:{
        type:'datetime'
    },
    yAxis: {
      title: {
        text: 'Fruits Amount'
      }
    },
    series: [{}]
  };
  options.series[0].data = data;
  var chart = new Highcharts.Chart(options);

});
如果序列号是e-6,那么转换没有任何 问题

以前有人遇到过这个问题吗


有人能帮我吗?

我的理解是,Highcharts中的标签只使用数字的值,而Javascript就是这样打印这些数字的。例如,在节点中演示:

$ node
> 0.0000009888550207585507
9.888550207585507e-7
> 0.000009888550207585507
0.000009888550207585507
那你能做什么呢?您可以使用
toFixed
()始终以给定的精度表示它。但是,请注意,这有一个大约20的限制,并且要求您选择一个特定的数字并成为一个字符串。但是它很简单():

如果使用的
toFixed
值太大,则可以开始截断尾随的零以获得可变长度标签,但这可能不是最好的方法。一个粗略的例子():

yAxis: {
    labels: {
        formatter: function() {
            return this.value.toFixed(8);
        }
    },
}
yAxis: {
    labels: {
        formatter: function() {
            let strValue = this.value.toFixed(20);

            for(let i = strValue.length - 1; i >= 0; i--) {
                if(strValue.charAt(i) != '0') {
                    strValue = strValue.substring(0, i + 1);
                    break;
                }
            }

            return strValue;
        }
    }
}