首页 > 解决方案 > 数字格式不正确

问题描述

我目前正在构建一个天气应用程序。下面是我用来渲染 Google 图表的代码。

function drawLineGraph() {
    var options = {
        hAxis: {
            title: 'Time'
        },
        vAxis: {
            title: variable
        },
        //backgroundColor: '#f1f8e9',
        interpolateNulls: false

    };
    var data = [];
    var title = [];
    var data = new google.visualization.DataTable();
    data.addColumn('date', 'TimeLine');
    var formatter = new google.visualization.NumberFormat({pattern: '##.##'+units[0]});
        for (var i = 0; i < n_variables; i++) {
        data.addColumn('number', variables[i] + ' ' + agg_levels[i])
    }
    data.addRows(y)
    for (var i = 0; i < n_variables; i++) {
    formatter.format(data, i+1)    }
    
    
    var chart = new google.visualization.LineChart(document.getElementById('curve_chart'));
    chart.draw(data, options);
}

我在数据格式方面遇到了问题。如下图所示,即使我在第二个值之后添加了小数点分隔符,我也只会在第四个值之后显示它。我希望该值显示为 71.33%

天气1

我还注意到,如果我用逗号替换小数点符号,事情就会变得很好。我目前居住在德国,实际上使用十进制而不是逗号。那么这是地区问题吗?有什么办法可以硬编码到我的 javascript 中来设置默认区域? 天气2

标签: javascriptgoogle-visualizationtooltip

解决方案


如评论中所述,您可以尝试使用格式化程序的各种选项。

但是您可以通过使用对象表示法加载数据来控制格式化值。

使用 添加数据时addRows,对于每个单元格值,您可以反对表示法。

其中v:是值,f:是格式化值。

{v: 71.33, f: '71,33%'}

data.addRows([
  ['8:00 PM', {v: 71.33, f: '71,33%'}]
]);

您还可以在加载谷歌图表时加载特定的语言环境,
这可能会在没有上述任何选项的情况下解决您的问题。
请参阅 -->使用语言环境加载


推荐阅读