excel的if条件公式结果有问题

e=b+c+d,当e大于等于a时,f自动生成1,但是f4的公式结果明显有问题。如果e4不用公式求和,直接输入,则f4可以得到1。a、b、c、d均为手动输入,只有小数点后2... e=b+c+d,当e大于等于a时,f自动生成1,但是f4的公式结果明显有问题。如果e4不用公式求和,直接输入,则f4可以得到1。
a、b、c、d均为手动输入,只有小数点后2位。格式均为数值,没有文本之类的。
为什么现在得不出f4=1的结果?
展开
 我来答
小矇
2013-10-28 · TA获得超过1.6万个赞
知道大有可为答主
回答量:8342
采纳率:75%
帮助的人:3251万
展开全部
首先,因为电脑中只能储存整数,没有“小数”的概念的,所以小数运算的方式是用“浮点运算”的方式来表示(这里就不解释了,也是自己水平问题,不能用简明易懂的语言解释),所以小数运算后我们看到的结果,只是无限接近应得结果的一个约数。越经过多次运算,最终结果就越容易偏差(尽管我们看到的结果是“正确”的)。所以你F列上的结果是小数运算后的结果,再用它去减手工输入的A列数据,又再运算多一次,就不一定符合你设定的条件了。

其实要达到你的目的,也不需要这样的转折,因为这样会增加小数运算的环节,可以直接点,如:
=IF(E4>=A4,1,"")
这样就能得到你要的效果了。
yolandezhang
2013-10-28 · TA获得超过251个赞
知道小有建树答主
回答量:225
采纳率:0%
帮助的人:117万
展开全部
是这样的,计算机系统计算是尾位数的不是正好2位小数,所以:解决方案是=IF(ROUND(E4,2)-ROUND(A4,2)>=0,"1",""),用函数定义一下小数点2位数就可以了,你试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
善良的猪头3
2013-10-28 · TA获得超过2932个赞
知道大有可为答主
回答量:2522
采纳率:71%
帮助的人:2783万
展开全部
浮点计算的bug,E2公式变更为=ROUND(ROUND(D2+C2+B2,3),2),可以解决此问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e1af404
2013-10-28 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.1万
采纳率:59%
帮助的人:3985万
展开全部
在Excel选项中,找到“以显示精度为准”,并勾选之
追问
谢谢,你的方法一试就成功了,不过我还是想了解这是什么原理。因为除了E4是公式求和,A4B4C4D4我都确定是手动输入的值,没有小数点后N位还有值的可能性,但根据这方法的原理,明显应该是小数点2位后还有值。这也太不科学了
追答
这是处理器进行浮点运算时的BUG,任何软件都不可回避。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
波澜不惊的湖面
2013-10-28 · TA获得超过200个赞
知道答主
回答量:95
采纳率:0%
帮助的人:49.3万
展开全部
小数点位数只是显示数值,比较时以实际数值为准。也就是说现在E4的值>220.80,有些小数没有显示。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
snowmusi
2013-10-28 · TA获得超过105个赞
知道答主
回答量:120
采纳率:0%
帮助的人:68.4万
展开全部
果然有bug,加过以后变小了,只是小得不明显,放大足够倍数就能看到,受教了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式