JS中两个值进行相加

var location = this.options.location;//获取当前控件的位置

var cr = FR.cellStr2ColumnRow(location);

var col = cr.col; //当前列号

var ro = cr.row; //当前行号

var V1 = _g().getCellValue(0, 

col + 21, ro);//获取当前行Z15的值(累计占比值)

var V2 = this.getValue(); //获取当前单元格值

i = 14;

sum = 0;

while(i<ro){

 var V3 = _g().getCellValue(0,col,i);

 sum = sum + V3;

 i++;

};

alert(sum);

image.pngimage.png

——------------------------------上面是我的JS,我想循环获取控件中的值进行相加(累计控件的值),控件是数字控件,但是返回的结果为什么不是0.75,而是拼接的值0---------------------------------------------image.png

FineReport RJ6688 发布于 2024-10-8 15:13 (编辑于 2024-10-8 15:17)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
snrtuemcLv8专家互助
发布于2024-10-8 15:15

sum = sum + V3;

改成

sum = parseFloat(sum)+ parseFloat(V3);

  • RJ6688 RJ6688(提问者) 改完之后返回 NaN
    2024-10-08 15:16 
  • snrtuemc snrtuemc 回复 RJ6688(提问者) 那试试sum = Number(sum)+ Number(V3); 注意大小写是区分,这个是强制转换字符成数字,正常可以的啊。。。
    2024-10-08 15:19 
  • RJ6688 RJ6688(提问者) 回复 snrtuemc 这个可以,谢啦,但是为什么我就是数字控件,为什么获取到的值不能直接计算啊,我看之前的示例就是直接计算的
    2024-10-08 15:24 
  • snrtuemc snrtuemc 回复 RJ6688(提问者) js中,你定义var,是字符,字符相加就是拼接,需要强制转换成数字相加才可以
    2024-10-08 15:25 
  • RJ6688 RJ6688(提问者) 回复 snrtuemc 好的,感谢
    2024-10-08 15:31 
最佳回答
0
ID1208Lv6高级互助
发布于2024-10-8 15:20(编辑于 2024-10-8 15:22)

单元格值*1.0   转换成数字,然后再加减试试

sum = sum + V3*1.0

  • 3关注人数
  • 149浏览人数
  • 最后回答于:2024-10-8 15:22
    请选择关闭问题的原因
    确定 取消
    返回顶部