BBS

  • 注册
  • 登录
  • 搜索
  • 标签
  • 帮助
BBS » 电脑、手机、平板知识专栏 » Excel知识兴趣点五十六:Excel浮点运算误差 » 发表回复

预览帖子

游客


发表回复

用户名 游客 [会员登录]
  (可选)
  • Html 代码 可用
  • 表情 可用
  • Discuz!代码 可用
  • [img] 代码 可用
B I U | 字体 大小
| Align Left Align Center Align Right | Url Email Image | Quote Code
Rremove Format Unlink Undo Redo | Ordered List Unordered List Outdent Indent Float Left Float Right | Table Free Hide | flyflashmp3mtvmusicmusic2
flvmtv2music3
简单功能
  • 仿宋_GB2312
  • 黑体
  • 楷体_GB2312
  • 宋体
  • 新宋体
  • 微软雅黑
  • Trebuchet MS
  • Tahoma
  • Arial
  • Impact
  • Verdana
  • Times New Roman
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
收缩编辑框扩展编辑框
上传附件 描述
文件尺寸: 小于 25000 kb
  [完成后可按 Ctrl+Enter 发布]    恢复数据

主题回顾

zhendeaini 发表于 2015-3-10 18:50

引用:
原帖由 Guest from 150.48.70.x 于 2015-3-10 15:24 发表
我有时用Int()函数处理。A1=INT(((4.1-4.2)+1)*10+0.5)/10=B2=0.9,不过有点复习,不知是否有问题。[39]
也可以的,[82] 只是你那个表达式写错了,理解你的意思:

                               A1=INT(((4.1-4.2)+1)*10+0.5)/10
                               B2=0.9
                               那么C1=IF(A1-B2=0,"相等","不相等"),C1显示“相等”

也可以按照seaxin的思路:

                               A1=ROUND((4.1-4.2)+1,2)
                               B1=0.9
                               那么C1=IF(A1-B1=0,"相等","不相等"),C1显示“相等”

这样就规避了Excel浮点运算误差这个BUG!请看附件!

匿名 发表于 2015-3-10 15:24

我有时用Int()函数处理。A1=INT(((4.1-4.2)+1)*10+0.5)/10=B2=0.9,不过有点复习,不知是否有问题。[39]

zhendeaini 发表于 2015-3-10 11:46

引用:
原帖由 seaxin 于 2015-3-10 10:09 发表
加上ROUND函数就可以,不过不明白为什么会这样~[42]设置格式也不管用

而且复制数值后=(4.1-4.2)+1计算出来的值居然是0.8999999,真神奇啊,~[42]
从Excel 95一直到最新版本的Excel 2013,中间好像除了Excel 97做过一次纠正,其他版本这个BUG是一直存在。

详看微软官方解释:http://support.microsoft.com/kb/78113

seaxin 发表于 2015-3-10 10:09

加上ROUND函数就可以,不过不明白为什么会这样~[42]设置格式也不管用

而且复制数值后=(4.1-4.2)+1计算出来的值居然是0.8999999,真神奇啊,~[42]

[ 本帖最后由 seaxin 于 2015-3-10 10:12 编辑 ]

zhendeaini 发表于 2015-3-10 09:26

前面我们讨论了Excel强大的功能,了解了Excel在日常工作中给我们带来了极大的方便,那么看似“完美”的Excel,到底有哪些“不足”的地方呢?
各位童鞋可以验证一下:
选取单元格A1、B1、C1,其中A1输入=(4.1-4.2)+1,B1输入0.9,C1输入=IF(A1=B1,"相等","不相等"),发现了什么?
C1居然显示“不相等”?

我们会问:天哪,Excel连最强大的、复杂的运算都能处理,这么简单的判断却无法正确处理,到底怎么了?难道是我的电脑出问题了?

没错,这就是一个BUG!一个目前无法解决的BUG!但是可以规避它。

各位,怎么处理,才能让电脑读懂这些简单的运算呢?大家可以思考一下。

当前时区 GMT+8, 现在时间是 2026-4-4 01:37

清除 Cookies - 联系我们 - BBS - WAP - TOP - 界面风格

  • 默认风格
  • 喝彩奥运
  • 深邃永恒
  • 粉妆精灵
  • 诗意田园
  • 春意盎然
  • 黑色

Discuz!

Powered by Discuz! 6.0.0 © 2001-2007 Comsenz Inc.

Processed in 0.049732 second(s), 7 queries, Gzip enabled.