历史版本10 :Round函数 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 应用场景

在制作报表时,某数据列如收入金额是数字类型,其中数据包含小数,且小数位数不超过 2 位,对该列进行求和(使用公式 sum)等处理时,会发现最终的结果如:123456.409999996,即小数位数超过 2 位。

此时您可能会有疑问,为什么小数位数不是 2 位?若您的报表对有效位数比较敏感,如金额汇总,总金额最多精确到分,即小数位数最多 2 位,该怎么办?

1.2 功能简介

此情况时,可使用 round() 函数对计算后的结果按指定位数四舍五入来解决。

2. 示例编辑

2.1 函数说明

2.1.1 概述

语法ROUND(number,num_digits, boolean)返回某个数字按指定位数舍入后的数字。
参数1number需要进行舍入的数字
参数2num_digits

指定的位数,按此位数进行舍入。

如果 num_digits 大于 0,则舍入到指定的小数位。

如果 num_digits 等于 0,则舍入到最接近的整数。

如果 num_digits 小于 0,则在小数点左侧进行舍入。

参数3boolean

因浮点数存在精度计算丢失问题,导致计算结果里可能带上 9999、0000 这些,因此加入第三个参数来控制是否需要去除 9999、0000。

false 表示需要过滤 9999、0000 这些数据;true 表示保留,参数为空则默认为 false。

2.1.2 注意事项

  • 2020-07-08 及之后版本的 JAR 包才会有第三个参数。

  • 2020-07-08 及之后版本的 JAR 包 number 参数支持字符串。

2.1.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 求和后精度变大了。

遇到这样的情况时,可使用 round 函数对求和结果按 2 位小数位四舍五入,即 B5 单元格中的使用方法。