论坛发帖 请求处理 很多版主都无法解释的现实问题
请将下列代码复制到VBE编辑器中,运行SUB过程,计算结果(9.58)与手工计算结果(9.59)有误差。 我用这个自定义函数计算个人所得税一两年了,公司有几百名员工。从来没出现过计算错误,但本月出现这个误差让我觉得很费解,目前只发现在计算这一组数字的时候会出问题。
注意,这里不是说ROUND函数的问题,在被 ROUND 函数处理前,变量 gs1 的结果就已经错误了 |
本文目的是提醒大家正确声明 VBA 变量的数据类型 该代码示例连基本的数据类型都没声明
结果是 9.585
Variant 类型的数字如果包含小数点默认是双精度,看一下帮助双精度的表示方法是 e 的多少次方。e根本不是整数,所以计算多次后必定有 .????9999999 出现,导致数据结果错误。 |