堆积柱形图,求和规定标签取两位小数,可是显示很多是0,请问是哪里错了么

function sumLabel(){

  const point = this;   const points = point.points;  const validPoints = points.filter( (point) => point.isVisible() );  if(point == validPoints[validPoints.length - 1])   // validPoints.length 表示一个分类下共有多少个系列, validPoints.length - 1 表示汇总值显示在顶部(最后一个系列)  // 若想要汇总值显示在底部,则是 validPoints.length - 5    {    let value = 0;    for(let i = 0; i < validPoints.length; i++) //同一分类下所有系列均求和    // 若为 i<validPoints.length-2,则在本例中求的是从下往上数前 3 个系列的和    {      value += validPoints[i].value;    }    return FR.contentFormat(this.value, '#0.00');  } else {    return "";  }}

FineReport 不踩西瓜皮 发布于 2024-10-22 08:57
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
snrtuemcLv8专家互助
发布于2024-10-22 09:01

正常是toFixed(2);

例如  正常返回  return this.value;

改成   return this.value.toFixed(2);

最佳回答
0
xyz168Lv2初级互助
发布于2024-10-22 09:08

你的写法看起来没问题

建议重启一下设计器,估计是假保存了

最佳回答
0
ScyalcireLv7高级互助
发布于2025-8-11 14:17(编辑于 2025-8-11 14:17)

数据精度问题,整体代码优化后参考

function sumLabel(){
  const point = this;
  const points = point.points;
  const validPoints = points.filter((point) => point.isVisible());
  if(point == validPoints[validPoints.length - 1]) {
    let value = 0;
    for(let i = 0; i < validPoints.length; i++) {
      const numValue = parseFloat(validPoints[i].value.toString().replace(/[^\d.-]/g, ''));
      value += isNaN(numValue) ? 0 : numValue;
    }
    return FR.contentFormat(value, '#0.00');
  } else {
    return "";
  }
}

  • 4关注人数
  • 87浏览人数
  • 最后回答于:2025-8-11 14:17
    请选择关闭问题的原因
    确定 取消
    返回顶部