历史版本7 :Round函数 返回文档
编辑时间:
内容长度:图片数:目录数:
修改原因:
1. 概述编辑
1.1 应用场景
在制作报表时,某数据列如收入金额是数字类型,其中数据包含小数,且小数位数不超过 2 位,对该列进行求和(使用公式 sum)等处理时,会发现最终的结果如:123456.409999996,即小数位数超过 2 位。
此时您可能会有疑问,为什么小数位数不是 2 位?若您的报表对有效位数比较敏感,如金额汇总,总金额最多精确到分,即小数位数最多 2 位,该怎么办?
1.2 功能简介
此情况时,可使用 round() 函数对计算后的结果按指定位数四舍五入来解决。
2. 示例编辑
2.1 函数说明
1)概述
语法 | ROUND(number,num_digits, boolean) | 返回指定数字的绝对值 绝对值是指没有正负符号的数值 |
---|---|---|
参数1 | number | 需要进行舍入的数字 |
参数2 | num_digits | 如果 num_digits 大于 0,则舍入到指定的小数位。 如果 num_digits 等于 0,则舍入到最接近的整数。 如果 num_digits 小于 0,则在小数点左侧进行舍入。 |
参数3 | boolean | 因浮点数存在精度计算丢失问题,导致计算结果里可能带上9999,0000这些,因此加入第三个参数来控制是否需要去除9999,0000 false表示需要过滤9999,0000这些数据,true表示保留,参数为空则默认为false |
2020-07-08 及之后版本的 JAR 包才会有第三个参数。
2020-07-08 及之后版本的 JAR 包 number 参数支持字符串。
3)示例
公式 | 结果 |
---|---|
ROUND(2.15, 1) | 2.2 |
ROUND(2.149, 1) | 2.1 |
ROUND(-1.475, 2) | -1.48 |
ROUND(21.5, -1) | 20 |
ROUND(1.99999999, 8) | 2 |
ROUND(1.99999999, 8, true) | 1.99999999 |
2.2 操作步骤
如下所示,报表中的收入列求和,设计如下:
如上对收入 sum 求和(B4 单元格)后精度变大了。遇到这样的情况时,可使用 round 函数对求和结果按 2 位小数位四舍五入,即 B5 单元格中的使用方法。