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

目录:

1. 描述编辑

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

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

下面我们就看下其问题出现的原因和处理的方案。

2. 问题原因编辑

众所周知,计算机中的所有数据都是以二进制精确表示的,浮点数也不例外。然而浮点数的二进制表示法,却不像定点数那么简单。因为有些数据,在用十进制计算时就无法精确表示,再从十进制转化为二进制时,二进制无法在有限的精度内完全精确的表示出该数,只能利用更大的精度来更精确的表示这个数,二进制运算后,如上面的求和情况,就是体现出了这个现象,精度变大了。

3. 解决方案编辑

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

4. 示例编辑

如下所示,报表中的收入列求和,设计如下:

222


如上对收入 sum 求和(B4 单元格)后精度变大了。遇到这样的情况时,可使用 round 函数对求和结果按 2 位小数位四舍五入,即 B5 单元格中的使用方法。