gpt4 book ai didi

javascript - 在谷歌图表中设置 float

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:49:09 27 4
gpt4 key购买 nike

我想将诸如 137.55 之类的值分配给谷歌图表中的“数字”类型列,然后绘制它。每当我分配 float 时,它都会抛出这个异常:

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}}
);

我尝试使用格式化程序,但我猜它不适用于 float 据类型插入。任何建议或解决方案?

最佳答案

这是你的问题:

myVal = parseFloat(Math.round(myVal * 100) / 100).toFixed(2);

toFixed 方法的返回值是一个字符串,而不是一个数字。使用 Math.round(myVal * 100)/100 将为您提供一个精度为 2 位小数的 float ;您不需要对其调用 toFixed。此外,对数字调用 parseFloat 是毫无意义的——您应该对从数组中获取的字符串值调用它。第三,调用 parseInt(i) 也是毫无意义的,因为 i 已经是一个整数了(从技术上讲,javascript 中的所有数字都是 float 的)观点)。试试这个:

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;
}

这会将字符串解析为 float ,然后将其 trim 为小数点后两位的精度。如果您有兴趣使用数组中数据给定的精度绘制数据图表,但希望将工具提示中显示的值 trim 为小数点后两位,那么您可以改为这样做:

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;
}

关于javascript - 在谷歌图表中设置 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18992537/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com