Excel 中MOD()出错的问题
答案:2 悬赏:70 手机版
解决时间 2021-04-03 10:31
- 提问者网友:末路
- 2021-04-03 06:32
Excel 中MOD()出错的问题
最佳答案
- 五星知识达人网友:北方的南先生
- 2021-04-03 07:41
这是正常的。
EXCEL采用的是浮点运算,而浮点运算会产生一个很小的尾数。
230除10的余数当然为0了,但2.3*100就有可能产生尾数,所以再除以10就会余那个尾数了。
如果将2.3*100先取整再求余,结果还是0。如=INT(MOD(ROUND(2.3*100,0),10))
EXCEL采用的是浮点运算,而浮点运算会产生一个很小的尾数。
230除10的余数当然为0了,但2.3*100就有可能产生尾数,所以再除以10就会余那个尾数了。
如果将2.3*100先取整再求余,结果还是0。如=INT(MOD(ROUND(2.3*100,0),10))
全部回答
- 1楼网友:孤独入客枕
- 2021-04-03 08:59
我把你的公式复制到Excel中试了一下,果然如你所说。但我的解释是:这是Excel的数值表达和运算精度问题,第一个公式中,230和10都是整型,所以求mod没有有问题,但第二个公式中,2.3*100,Excel在运算时先会所100转换为双精度形来计算,这就会有一个误差(低精度向高精度置换的误差)。运算结果也是一个双精度型,并不是一个整数,最后MOD运算的结果是 -2.8421709430404E-14这样一个数,在单元格中取整后显示为-1
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯