Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 10943|回复: 7

简单的计算,结果0为什么显示成科学计数法

[复制链接]
发表于 2018-9-18 14:57 | 显示全部楼层 |阅读模式
我用excel做了个很简单的计算,具体请见附件。其实肉眼一看都知道结果为0(26.3-26.3=0),可为什么excel显示出来的却是科学计数法?而且我设置单元格格式也检查过了,并没有设置为“科学计数法”,不知道是什么情况?难道是excel的bug吗?哪位高手老师帮忙解答一下!感谢了!

相同的数字相减结果居然不是0.rar

13.21 KB, 下载次数: 15

 楼主| 发表于 2018-9-18 17:13 | 显示全部楼层
回复

使用道具 举报

发表于 2018-9-18 20:37 | 显示全部楼层
A1=100.1
A2=100
A3=0.1
A4=A1-A2-A3 结果不是0
原因是Excel 采用 浮点运算 ,
避免的方法 是 设置小数位数 或者 用 round 等函数 强制 修约
回复

使用道具 举报

 楼主| 发表于 2018-9-19 07:58 | 显示全部楼层
砂海 发表于 2018-9-18 20:37
A1=100.1
A2=100
A3=0.1

请问老师,如果设置了round函数,会不会对其他正常的计算造成影响呢?
回复

使用道具 举报

 楼主| 发表于 2018-9-19 08:03 | 显示全部楼层
砂海 发表于 2018-9-18 20:37
A1=100.1
A2=100
A3=0.1

还有,请问老师,excel的浮点偏差是不是只在有小数参与运算时,并且结果刚好为0时才会产生?因为我试了一下其他的运算,整数运算时,从未出现过类似情况,用小数参与运算,但结果不为0,也未出现过这种情况!
回复

使用道具 举报

发表于 2018-9-19 12:12 | 显示全部楼层
不是,浮点误差是计算机本身采用二进制原理计算导致,应该避免不了,只能采用round或者搜索一下4舍6入5单双来尽量避免带来的错误!
回复

使用道具 举报

发表于 2018-9-22 11:17 | 显示全部楼层
本帖最后由 砂海 于 2018-9-22 11:20 编辑

Excel 只能保留 15位 有效数字. (身份证号码18位 , 只能作为文本输入)
    假设 结果非常接近0的小数时 会看出来 (计算结果为 浮点误差 的 10的15次方 倍 以上时 , 误差被忽略了 )

10^20-1000 还会 等于 10^20 , 原因是浮点的尾部被忽略. (整数很大时也用浮点表达 , 10^20 即 1e20 )
回复

使用道具 举报

发表于 2019-8-22 10:40 | 显示全部楼层
哇谢谢 成功解决
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-24 01:48 , Processed in 0.297693 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表