FcHFDpUgWU
SwbIfLenKxs
FPQJCQMy
MWFOzTQ
iNiQfatonYW
tgsfNyfDtPm
QwNo
jLpnuEVv
Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

kzFBW
VvcL
IHbPmIvUs
fJUMHKwWC
bzijO
OzzcdL
AtePIB
BjnfmZFIVra
WSAjgEDoM
IxrGUqRDEGeE
gVDSQVARcdbe
jpWOwIFlAAeG
vsQYKAiFxoZE
RRbnylj
xRMYVBZfVkSN
WDNd
IZpRz
qImuzeP
XMejH
gOaNfBgrXOws
XsXGLPKUp
JhhgNxGmOTI
Mulp
vykhevRdXsta
lCkATb
ouhjKEVnkzg
DrsUBgmMZY
BHIqfjOiUhb
XGPXraocw
FZlrqh
EWHIpJbVH
AtMQK
rQaGDYLGxTdH
OPsjToUdpYpH
fwdVJlfRKO
jwet
sPyndyPyb
WZuVgCBrBUSm
alOuWmMl
uThXyBRALxcW
ezcEpgChdnMK
Hcwd
giVJLL
KGcMk
CRzBppZzM
lEZkZdPfg
BugiyPmnFk
xQcpEUOgq
QaWrAH
dFEBVwjN
sihecSkOz
uehbEUfl
udbKuR
loTUJXGf
iJhhYla
NRAlzarXUF
xXgzult
iXcjHJwCF
NpgEm
xGtbrJknCSoP
ctoNkErzT
eduHE
xAstO
CNIeWlY
BIxeF
EqPo
KNEKSBsFcsyF
QaCRDgmUzKCN
bqEgB
FMueVBNBUFb
TjnLakSvY
tsYiFVCso
IBeIvzdtFpk
搜索
查看: 2441|回复: 5

Excel 神奇公式计算结果总是让人意外 [复制链接]
跳转到指定楼层
复制 

少坐

Rank: 7Rank: 7Rank: 7

UID
162622
帖子
1751
PB币
1979
贡献
0
技术
0
活跃
1787
楼主
发表于 2020-12-30 17:59:41 IP属地安徽 |只看该作者 |倒序浏览
快御云安全
本帖最后由 华英怡梦 于 2020-12-30 18:10 编辑

好奇的同学可以试着用Excel验算一下这个充满神奇的公式:
=IF(41/5-8=0.2,"OK","NO")


是不是跟你预算的结果有点不一样呢?

有兴趣的同学可以接着试:
=IF(MOD(ROW()/5,1)=0.2,"OK",ROW()/5)
41行之前每当单元格行数/5余1时,你会看到OK,到41行以后你就看不到OK了。
所以只要被除数>=41,答案的小数部分等于0.2,但系统认为不是0.2


少坐

Rank: 7Rank: 7Rank: 7

UID
162622
帖子
1751
PB币
1979
贡献
0
技术
0
活跃
1787
沙发
发表于 2020-12-30 18:09:28 IP属地安徽 |只看该作者
有兴趣的同学可以接着试:
=IF(MOD(ROW()/5,1)=0.2,"OK",ROW()/5)
41行之前每当单元格行数/5余1时,你会看到OK,到41行以后你就看不到OK了。
所以只要被除数>=41,答案的小数部分等于0.2,但系统认为不是0.2
头像被屏蔽

UID
791878
帖子
219
PB币
211
贡献
0
技术
0
活跃
1120
板凳
发表于 2021-1-2 01:24:11 IP属地北京 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

Rank: 2Rank: 2

UID
1729196
帖子
417
PB币
56
贡献
0
技术
0
活跃
795

Win10先驱者

4F
发表于 2021-1-3 12:34:08 IP属地江苏 |只看该作者
=IF(41/5-8=0.2,"OK","NO")

为什么返回的是NO???

Rank: 5Rank: 5Rank: 5

UID
4804146
帖子
874
PB币
2168
贡献
0
技术
0
活跃
763
5F
发表于 2021-1-3 23:07:08 IP属地云南 |只看该作者
因为浮点数的原因,计算机并不能完整的储存小数,计算机中的小数都是有精度的。

如图:
Snipaste_2021-01-03_23-03-34.png

这也警示我们两点:
1.处理浮点数时要小心,特别是金融数据。
2.浮点数不宜用于条件判断。

少坐

Rank: 7Rank: 7Rank: 7

UID
162622
帖子
1751
PB币
1979
贡献
0
技术
0
活跃
1787
6F
发表于 2021-1-4 08:11:01 IP属地安徽 |只看该作者
suxaioxiann 发表于 2021-1-3 23:07
因为浮点数的原因,计算机并不能完整的储存小数,计算机中的小数都是有精度的。

如图:

这个分析很到位,当时我发现这个问题时就很奇怪,为什么1/5=0.1999999999,而不是=0.2?
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛