ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: sunpeng1111

[求助] 很少有人能解决。小数点有问题了!!!神啊,救救我吧!

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-3-14 15:30 | 显示全部楼层
我也碰到这个问题了。
在帮采购做的一个金额大写公式中偶尔会出现一些莫名其妙的结果,用F9追究一下发现就是小数搞的鬼。
比如我对B1单元格中的数值2245.3取小数点后的部分,对它MOD(B1,1)之后返回给我的并不是0.3,而是0.300000000000182.
给B1单元格的值套一层ROUND也无济于事,甚为不解。
期望高人站出来道出究竟。

TA的精华主题

TA的得分主题

发表于 2009-3-14 15:39 | 显示全部楼层
真的呢,不试还不相信呢!

TA的精华主题

TA的得分主题

发表于 2009-3-14 19:19 | 显示全部楼层

回21楼的

老兄啊,我试了试你的说法,但我没有发现你说的现象啊.会不会是你无意中把某些设置改了吧

TA的精华主题

TA的得分主题

发表于 2009-3-14 21:14 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
我的电脑上也是一样的现象!
实际上这是由于CPU在处理浮点数时出现的误差。如果有谁感兴趣的话,不妨可以手动计算一下33127.5159 用二进制(或十六进制)表示的话应该是多少?通常情况下1个小数无限乘以 2而不能最终为整数的话则不能被计算机完整表达,会被丢掉一些有效数字的。
我计算了一下,十六进制结果应该是 0.54CE72E5E1D7D(52位有效数字)X 10^5 (总共64位)。再把这个值转换成10进制的话,就变成了楼主所说的结果:33127.5148999999!
所以,既然我们知道浮点数计算后会有误差,那么我们在使用时应该有所注意就行了。比如使用4舍5入、取整等等方法来加以处理才可以避免此类错误!

TA的精华主题

TA的得分主题

发表于 2009-3-15 14:37 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-3-15 23:25 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
真是这样,长见识

TA的精华主题

TA的得分主题

发表于 2009-3-16 01:03 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
呵呵  浮点数的近似值表示法,这是电子计算机诞生以来一直就存在的顽疾,呵呵

[ 本帖最后由 coby001 于 2009-3-16 01:04 编辑 ]
excelx00.PNG
excelx01.PNG
excelx02.PNG
excelx03.PNG

TA的精华主题

TA的得分主题

发表于 2009-3-16 01:14 | 显示全部楼层
Sub Test()
Dim rx As Range
[a1] = 33127.5159
Set rx = [a1]
MsgBox "Value: " & rx.Value & vbCrLf & "Value2: " & rx.Value2 & vbCrLf & "Text: " & rx.Text & vbCrLf & "Formula: " & rx.Formula
End Sub

TA的精华主题

TA的得分主题

发表于 2009-3-16 11:32 | 显示全部楼层
我也没碰过,按你输入的都没问题。

TA的精华主题

TA的得分主题

发表于 2009-3-16 12:07 | 显示全部楼层
呵呵,平时还没有注意到,刚试了下,我的电脑也是这种现象呢,长见识了,谢谢大家!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-6-24 19:55 , Processed in 0.045290 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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