int() 为什么Excel里算出数据变小?

int(123456.70-1*100000-2*10000-3*1000-4*100-5*10-6)*10)=6 为什么Excel里算得是这个结果,有什么方法解决么

Excel中的浮点误差,要详细说这个篇幅就不小了,简单点说就是十进制转化为二进制过程中造成了无限循环,电脑的运算是二进制的,我们平时用的是十进制的,整数的换算还好,小数的算法就会出现好多无限循环。比如你这里出现的0.7

Excel计算的时候是有计算精度的,他只能处理有限位数的数字,所以当数字太长就会被他舍弃了,所以造成误差了。

如果不懂就自行百度一下Excel浮点误差,网上资料很多的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-11-11
Excel里算出数据变小,是因为电脑计算误差引起的,这个算式算出来接近于7,所以取事后得到结果6,解决办法将INT改为ROUND
第2个回答  2021-11-27
1、因为INT是取整数,小数部分就直接舍弃掉了
第3个回答  2021-11-11
浮动运算累积误差,看你的数据,元后是0.69,取角时,你又用了下取整的函数ROUNDDOWN,当然就是取6了。本回答被网友采纳
第4个回答  2021-11-11
为了避免误差,公式可以这样写:
=MID(TEXT(A2,"000000.00"),1,1)
=MID(TEXT(A2,"000000.00"),2,1)
=MID(TEXT(A2,"000000.00"),3,1)
....