Javascript 在google graph图表中设置浮点
我想给google图表中的“数字”类型列分配137.55之类的值,然后绘制它。每当我分配浮点数时,它都会引发以下异常:Javascript 在google graph图表中设置浮点,javascript,graph,google-visualization,Javascript,Graph,Google Visualization,我想给google图表中的“数字”类型列分配137.55之类的值,然后绘制它。每当我分配浮点数时,它都会引发以下异常: Uncaught Error: Type mismatch. Value 32.03 does not match type number in column index 1 我的代码是这样的: var data = new google.visualization.DataTable(); data.addColumn('number','Loop')
Uncaught Error: Type mismatch. Value 32.03 does not match type number in column index 1
我的代码是这样的:
var data = new google.visualization.DataTable();
data.addColumn('number','Loop');
data.addColumn('number','ReqSec');
var myTicks = new Array();
var formatter = new google.visualization.NumberFormat({
fractionDigits: 2
});
for (var i=0;i<arr.length;i++){
myVal = $.trim(arr[i][10]);
myVal = parseFloat(Math.round(myVal * 100) / 100).toFixed(2);
data.addRow([parseInt(i), myVal]);
myTicks[i] = i;
}
formatter.format(data, 1);
// Create and draw the visualization.
new google.visualization.AreaChart(document.getElementById('visualization')).
draw(data, {curveType: "function",
width: 700, height: 400,
vAxis: {title: 'Throughput'},
hAxis: {title: 'Loop', ticks: myTicks}}
);
var data=new google.visualization.DataTable();
data.addColumn('number','Loop');
data.addColumn('number','ReqSec');
var myTicks=新数组();
var formatter=new google.visualization.NumberFormat({
分位数:2
});
对于(var i=0;i这是您的问题:
myVal = parseFloat(Math.round(myVal * 100) / 100).toFixed(2);
toFixed
方法的返回值是字符串,而不是数字/100
将提供一个具有2个十进制精度的浮点数;您不需要对其调用toFixed
。此外,对数字调用parseFloat是毫无意义的-您应该根据从数组中获得的字符串值调用它。第三,调用parseInt(i)
也是无意义的,因为i
已经是一个整数了(从技术上讲,javascript中的所有数字都是浮点)。请尝试以下方法:
for (var i=0;i<arr.length;i++){
myVal = parseFloat($.trim(arr[i][10]));
myVal = Math.round(myVal * 100) / 100;
data.addRow([i, myVal]);
myTicks[i] = i;
}
for (var i=0;i<arr.length;i++){
myVal = parseFloat($.trim(arr[i][10]));
data.addRow([i, {v: myVal, f: myval.toFixed(2)}]);
myTicks[i] = i;
}
for(var i=0;i请共享arr
和/或myVal
的内容。如果您使用32.03手动输入数据,它工作正常,因此还有其他可疑之处。