Excel精英培训网

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

求助高手,帮帮我

[复制链接]
发表于 2019-5-12 14:49 | 显示全部楼层 |阅读模式
2学分
本帖最后由 zhyl7631260 于 2019-5-13 23:33 编辑

用公式取完小数后相加,再乘100变成整数后除以12,为什么整除后得到的余数不是0


超级截屏_20190512_142557.png

公式:=MOD(SUM(MOD(A1,1),MOD(B1,1),MOD(C1,1),MOD(D1,1))*100,12)

e

e

最佳答案

查看完整内容

简单说是因为浮点误差,因为计算机在运算时是要把数值采用2进制进行贮存和运算的。输出时再把2进制数改为10进制显示出来。如此倒来倒去就会有误差。 详情请百度搜索浮点计算或浮点误差。 如果要避免此情况,你的公式可以加入round函数,如=MOD(ROUND(SUM(MOD(A2,1),MOD(B2,1),MOD(C2,1),MOD(D2,1)),0)*100,12)
发表于 2019-5-12 14:49 | 显示全部楼层
简单说是因为浮点误差,因为计算机在运算时是要把数值采用2进制进行贮存和运算的。输出时再把2进制数改为10进制显示出来。如此倒来倒去就会有误差。
详情请百度搜索浮点计算或浮点误差。
如果要避免此情况,你的公式可以加入round函数,如=MOD(ROUND(SUM(MOD(A2,1),MOD(B2,1),MOD(C2,1),MOD(D2,1)),0)*100,12)
回复

使用道具 举报

 楼主| 发表于 2019-5-13 08:49 | 显示全部楼层
高 发表于 2019-5-12 17:55
简单说是因为浮点误差,因为计算机在运算时是要把数值采用2进制进行贮存和运算的。输出时再把2进制数改为10 ...

有余数的怎么成零了
回复

使用道具 举报

 楼主| 发表于 2019-5-13 10:11 | 显示全部楼层
谢谢:了,
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 04:21 , Processed in 0.260264 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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