网易首页 > 网易号 > 正文 申请入驻

四舍五入知多少?VB/VBA之Round函数不是有Bug,而是精度更高!

0
分享至

1、在与数据打交道的过程中,四舍五入,无疑是无法回避的问题。正如BtOfficer在《知VBA的浮点数结构,更懂矿机装显卡》中所述,虽然计算机里只有整数,但在客观世界里,没有那么多刚刚好的事。毕竟,小数点里才有人间烟火。

2、但是浮点数有精度问题,比如3个人均分1块钱,如果太过算计,反而会一事无成。不过好在我们的先祖,早就明白了取舍,有舍才有得是我们为人处世的哲学。所以,千年以前我们就有了四舍五入的约定,也即>=5则入,<5则舍。这也成为我们日常四舍五入最直观的常识。

3、随着科技的发展,电子计算机在各个方面上,都在改造着人类的生产生活。电子表格软件,对于厘清社会要素的流动上,发挥着不可估量的作用。而Office和WPS这类电子表格软件中的表格函数(Round)以及VBA中的内置函数(Round)则担负起了四舍五入的职责。

4、相信用过Round函数的朋友都说好,但是这里面却存在一个很容易被人忽略的问题。无论是遇到,还是没遇到的朋友,都可以来看一看。

在VB/VBA中,Round(0.565,2)=0.56。是不是不敢相信?按照四舍五入的理解,明明该0.57嘛。在工作表中,也有Round函数,但前述结果恰恰为0.57,与直觉理解相符。二者出现迥然不同的结果,这就是问题,很多人遇到过的人,甚至称之为Bug,将锅甩给了VB/VBA。

5、但真是这样吗?这么明显的Bug,开发小组和测试小组都没发现?就像Dateiff函数计算年、季、月数一样,看上去违反常识理解,实际上却是常识在误导。

浮点数,只有在科学计算中,才会真正涉及精度问题。日常生活中的浮点数,每一位都是有意义的,也就是说它们是精确的,不涉及精度问题,只涉及取舍问题。但问题在于,有了计算器后,原本取舍问题,因为计算,变成了精度和取舍的双重问题。

为了更好地说明问题,举个例子:会计上有个费用分摊的概念,比如需要将100元,分摊到1-3月,那么每个月分摊的费用为100/3。在计算上,这会导致无限循环小数,从而在无意义的精度上不得不有所取舍,但分歧就此产生。以下分析按小数点后3位为有效取舍位。

按计算,则每个月都是33.333...。如果按直观常识的四舍五入,则每月为33.33,合计数为99.99。如果还要照顾数据整体精度,则必然有1个月为33.34,这样合计数才是100。
看到了没?我们通常理解的四舍五入,要么夸大数据,要么缩小数据。这样在传递数据时,势必会传递这种误差。而后一种,能够在概率上保证数据整体的精度,缩小误差。

6、这其实对应了四舍五入的两种算法,一种非平衡算法,另一种平衡算法。非平衡算法,就是我们直观常识理解的那种,真的有舍有得,约定俗成。而平衡算法,则建立在概率统计的基础上,力求数据整体的取舍平衡。

事实上,平衡算法是一种国际标准,大部分开发语言都遵守这一标准。所以,不仅VB/VBA存在这样的现象,Python/C#等,也一样存在这样的现象。所以,不必纠结VB/VBA内置的Round函数的计算结果是否准确。

7、既然平衡算法更符合统计学的精确,那为何工作表中的Round函数和日常使用中却采用误差更大的非平衡算法呢?原因,就在于更符合直觉判断,这个就叫亲兄弟明算账,有舍有得,但心知肚明,更可控吧。

不知这样的理解,大家是否认可?欢迎关注BtOfficer,留言吐槽,更多精彩正在有备而来。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
女生“私密小豆豆”,除了快乐,啥用没有

女生“私密小豆豆”,除了快乐,啥用没有

南风山
2024-06-20 08:37:17
已做好牺牲准备!海警登检菲船并不轻松:画面显示我方穿了防弹衣

已做好牺牲准备!海警登检菲船并不轻松:画面显示我方穿了防弹衣

青年的背包
2024-06-19 20:01:11
酒井法子越老越丰满!微胖身材穿蕾丝裙紧绷绷,看脸却清纯如初

酒井法子越老越丰满!微胖身材穿蕾丝裙紧绷绷,看脸却清纯如初

时髦范
2024-06-07 10:51:02
演员王鸥该换造型师了,这衣服要是大晚上的穿出来,得吓坏多少人

演员王鸥该换造型师了,这衣服要是大晚上的穿出来,得吓坏多少人

一顿要吃六碗半
2024-06-20 01:13:14
9岁女孩在小区荡椅上玩耍跌落死亡,设备公司被判担责60%赔107万

9岁女孩在小区荡椅上玩耍跌落死亡,设备公司被判担责60%赔107万

澎湃新闻
2024-06-19 17:54:26
河南小麦:亩产1825斤,评论区骂声一片。网友:没这数去哪领补贴

河南小麦:亩产1825斤,评论区骂声一片。网友:没这数去哪领补贴

三月柳
2024-06-19 11:02:13
女生私处「小花瓣」长什么样,才正常?

女生私处「小花瓣」长什么样,才正常?

喜马拉雅主播暮霭
2024-06-09 13:13:48
美国怎么救都是死路?终于知道俄军:为何在西方集团面前底气十足

美国怎么救都是死路?终于知道俄军:为何在西方集团面前底气十足

帅先工场
2024-06-17 16:22:53
4大强敌进死亡之组!女排最差一组出炉,网友:中国队坐山观虎斗

4大强敌进死亡之组!女排最差一组出炉,网友:中国队坐山观虎斗

体坛知识分子
2024-06-20 06:05:02
“人民”警察网暴人民,丧尽天良!

“人民”警察网暴人民,丧尽天良!

观风者
2024-06-14 10:06:53
再见皇马,双冠王功臣,追顶薪,佛爷挽留,提供新约,也没用

再见皇马,双冠王功臣,追顶薪,佛爷挽留,提供新约,也没用

球文速递
2024-06-20 08:30:12
3000万抗旱资金去哪了?河南财政拨3000万抗旱,结果老百姓不买账

3000万抗旱资金去哪了?河南财政拨3000万抗旱,结果老百姓不买账

三月柳
2024-06-18 16:06:45
精壮了!前辽篮神射贺天举:4个月减了125斤 小小炫耀一下

精壮了!前辽篮神射贺天举:4个月减了125斤 小小炫耀一下

直播吧
2024-06-19 20:56:11
王云蕗冲锋!今日赛程:中国女排要复仇日本女排,巴西女排很稳

王云蕗冲锋!今日赛程:中国女排要复仇日本女排,巴西女排很稳

阿牛体育说
2024-06-20 10:30:35
CCTV5直播,黄金时间晚9点,英格兰胜=头名晋级,西、意榜首大战

CCTV5直播,黄金时间晚9点,英格兰胜=头名晋级,西、意榜首大战

侧身凌空斩
2024-06-20 05:11:24
普京下重手:俄唯一女大将,全球军衔最高的女性舍夫佐娃被解职!

普京下重手:俄唯一女大将,全球军衔最高的女性舍夫佐娃被解职!

咖啡店的老板娘
2024-06-19 20:04:46
超三万人施工,仅12天建成的雷神山医院,停用4年后荒废了吗?

超三万人施工,仅12天建成的雷神山医院,停用4年后荒废了吗?

双色球的方向舵
2024-06-19 19:01:15
女孩坚称高考586分,再次查询只有364,全家把教育局告上法庭,结局却迎来大反转

女孩坚称高考586分,再次查询只有364,全家把教育局告上法庭,结局却迎来大反转

鱼乐星鲜事
2024-06-19 16:49:29
四川宜宾一副局长沉迷豪车、金钱的奢华生活 通过借款、收利息等敛财122万余元

四川宜宾一副局长沉迷豪车、金钱的奢华生活 通过借款、收利息等敛财122万余元

封面新闻
2024-06-19 19:01:45
“人造天才”姜萍,一个非常拙劣的谎言

“人造天才”姜萍,一个非常拙劣的谎言

雪千岚
2024-06-17 21:40:36
2024-06-20 11:24:49
BtOfficer
BtOfficer
安全,办公,工具,情报,文字
88文章数 1016关注度
往期回顾 全部

科技要闻

苹果回应AI仅限iPhone15Pro:不是为卖新机

头条要闻

环球:《我的阿勒泰》火到国外 西方媒体破防了

头条要闻

环球:《我的阿勒泰》火到国外 西方媒体破防了

体育要闻

绿军的真老大,开始备战下赛季了

娱乐要闻

黄一鸣“杀疯了” 直播间卖大葱养孩子

财经要闻

茅台大跌,谁的锅?

汽车要闻

售价11.79-14.39万元 新一代哈弗H6正式上市

态度原创

亲子
教育
数码
旅游
艺术

亲子要闻

网友路边看见的双胞胎宝宝,在车里乖乖等待爸妈回来

教育要闻

初三最后一课老师弹吉他为学生鼓劲:希望同学们考出优异的成绩

数码要闻

“全球首款可量产 RISC-V 笔记本”进迭时空 MUSE Book 国行发布

旅游要闻

千万别错过!甘孜雪山奇景 享受云中看海

艺术要闻

穿越时空的艺术:《马可·波罗》AI沉浸影片探索人类文明

无障碍浏览 进入关怀版