javascript - 数字格式不正确
问题描述
我目前正在构建一个天气应用程序。下面是我用来渲染 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%
我还注意到,如果我用逗号替换小数点符号,事情就会变得很好。我目前居住在德国,实际上使用十进制而不是逗号。那么这是地区问题吗?有什么办法可以硬编码到我的 javascript 中来设置默认区域?
解决方案
如评论中所述,您可以尝试使用格式化程序的各种选项。
但是您可以通过使用对象表示法加载数据来控制格式化值。
使用 添加数据时addRows
,对于每个单元格值,您可以反对表示法。
其中v:
是值,f:
是格式化值。
{v: 71.33, f: '71,33%'}
data.addRows([
['8:00 PM', {v: 71.33, f: '71,33%'}]
]);
您还可以在加载谷歌图表时加载特定的语言环境,
这可能会在没有上述任何选项的情况下解决您的问题。
请参阅 -->使用语言环境加载
推荐阅读
- java - 当我从活动中调用片段时,Android 应用程序每秒崩溃一次?
- r - 在同一张图表上绘制具有不同比例的两个变量
- vue.js - 具有自定义字段的 FullCalendar 和 ICalendar 提要
- azure - 使用 Rest API 根据标签获取 Azure 资源详细信息
- excel - 单元格的条件格式以检查它们是否相等
- java - 无法在字符串响应中显示“ü”
- android - 带有 android:isolatedProcess="true" 的 Android 应用服务无法与 intune SDK 一起使用
- java - 将 Swing 应用程序迁移到 Java 8 会导致 java.lang.ClassNotFoundException: org.jdesktop.swingworker.SwingWorker
- javascript - 按扩展名数组输出目录中的文件列表
- swift - 如何更改优化级别?