历史版本8 :除数被除数为零的处理 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 描述编辑

在报表设计时,若使用除法运算,会涉及到除数与被除数为零的情况,默认情况下 FineReport 的计算规则如下:

被除数为 0,除数非 0,结果为 0:如 0/2=0;

被除数非 0,除数为 0,结果为∞:如 2/0=∞;

被除数和除数都为 0,结果为 0:如 0/0=0。

但实际应用中,都希望对这种情况进行处理,比如除数为0或者除数被除数都为 0 的情况下不做计算等等。

2. 示例编辑

2.1 报表设计

新建报表,创建内置数据集,如图:
222

设计完成的报表,被除数数据设置为列表,如下:
222

这是使用FineReport默认的规则计算,结果如下:
222

2.2 除数与被除数都为 0

若希望被除数和除数都为 0 时,显示“can’t caculate”,否则做除法运算。此时可将 C2 单元格的公式改为:=if(A2=0&&B2=0,"can't caculate",A2/B2),如下图:
222

结果如下:
222

2.3 除数为 0

除数为 0 时,相除结果为无穷大,希望不需要计算,可使用公式=IF(B2=0,"0",A2/B2),结果就显示为 0 了。

因此,对于除数和被除数都为0的情况下,可以通过 if 公式先进行判断然后决定是否进行运算。