你好。
我正在为 KPI 图表准备一个数据数组
数据准备功能
function culcJson() {
var jsonObj = ${json_text};
var newJSON=[];
var KPI=[];
var jsonResult = [];
var a = 0;
do {
var value=jsonObj.SucceededCount[a].SucceededCount_MEAS_VALUE/(jsonObj.SucceededCount[a].SucceededCount_MEAS_VALUE+jsonObj.FailedCount[a].FailedCount_MEAS_VALUE)*100;
KPI.push(value);
a += 1;
} while (a < jsonObj.FailedCount.length)
return KPI;
}
对于我使用的图形部分
$(function () {
var KPI=[];
var jsonObj = ${json_text};
if (jsonObj!=null){KPI=culcJson();}
$('#container4').highcharts({
chart: {
zoomType: 'x'
},
title: {
text: '${TITLE}'
},
xAxis: {
categories: [<c:forEach var="row" items="${SCRIPT_FailedCount.rows}">"${row.DATE__CURRENT__CHECK}",</c:forEach>]
},
yAxis: {
title: {
text: ''
}
},
plotOptions: {
area: {
fillColor: {
linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1},
stops: [
[0, Highcharts.getOptions().colors[0]],
[1, Highcharts.Color(Highcharts.getOptions().colors[0]).setOpacity(0).get('rgba')]
]
},
marker: {
radius: 2
},
lineWidth: 1,
states: {
hover: {
lineWidth: 1
}
},
threshold: null
}
},
series: [
{
name: 'KPI',
data: KPI
}
]
});
});
如果你保持原样,那么一切都很好。显示了图形,但我想将 KPI 值的小数位数减少到 2。简单固定(2)
KPI.push(value.toFixed(2));
之后,图形不再显示。
控制台中没有错误。
可能是什么问题以及如何解决?
问题是该方法
toFixed
返回一个字符串,而不是一个数字。显然,组件级别的逆向类型转换没有进行,或者说歪了。
该怎么办?
一)。不使用 toFixed,而是使用 Math.round 舍入到所需的精度。这是最正确的方法。toFixed 在某些情况下在数学上是错误的。 就像是:
Math.round 舍入一个整数,所以我们乘以除以 10*(正确的位数)。
2). 但是如果我们不怕最后一个符号+-1出错,那么我们可以使用toFixed,只需要将toFixed的结果转换为一个数字即可。
或者