永发信息网

EXCEL中使用ROUND函数时发现结果有错误!求解?

答案:3  悬赏:20  手机版
解决时间 2021-11-08 02:30
  • 提问者网友:心如荒岛囚我终老
  • 2021-11-07 03:32
EXCEL中使用ROUND函数时发现结果有错误!求解?
最佳答案
  • 五星知识达人网友:痴妹与他
  • 2021-11-07 04:12
你点下F3单元格,看一下F3单元格在编辑栏中显示的数字是多少
 

 
 
那你两种表的E3单元格公式改成
=ROUND(D3*E3,)
这样试一下
追问谢谢!
哪个单元格出错,就在哪个单元格上解决问题,最好不要殃及其它单元格追答那你两种表的G3单元格公式改成
=ROUND(D3*E3,)
这样试一下
全部回答
  • 1楼网友:风格不统一
  • 2021-11-07 04:19

这应该是浮点运算造成的,你点在前面一个单元格看看,这个数是小于75302.5的,可能只有75302.4999……这样子。

选择公式中的部分D3*E3,按F9,得到下图


果然是这样。


是这里形成的,所以说在计算过程中的数据要取有效位数,不要到最后一个数据才取。


追问我的每一个单元格都是“常规”格式,没有做任何格式修饰,不存在显示误区追答这不是你哪里错了,是程序的问题,对于小数运算,计算机是将十进制数转为二进制数运算,再将运算结果从二进制转为十进制,转换过程中会存在误差,也称为浮点运算,这个是程序无法避免的,而整数运算不会有这种误差。WPS在这里没发现这个问题,并不是不存在这个问题,换些其它数据也会有的。
所以,如果有多级引用计算结果的公式,要在中间过程中的公式,对小数位数进行修约。追问阁下解释非常专业,谢谢。
但我这案例最多才三位小数,微软怎么能连这种程度的问题都搞不定啊?追答这不是微软的事,涉及到计算机的计算原理的事情。有时候我们看似简单的问题,但操作起来是非常难的。追问唉,那以后类似的问题会防不胜防,根本不知道哪里会出”意外“,睡觉都要不踏实了。追答没这么严重,设计公式时,养成一个良好习惯,对于有小数的运算,中间用ROUND函数来修约一下。怕影响结果,小数位可多取点。
其实按照标准,中间过程的数据,纯加减的,应该只比结果多一位小数;含乘除的,应该按最少位数来取的,但这点我们在平时是从来都不执行的,都是任由计算机去算。追问受教了,非常感谢!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯