Excel将一个记录中的数字向上舍入,在另一个记录中向下舍入相同的数字

问题描述 投票:0回答:1

Excel正在使数字不一致,导致我出现问题。使用ROUND()时,有时会向上舍入特定数字,而在其他时候,它会向下舍入相同的值。

我已经尝试设置Excel以在设置中显示确切的值,但它不会改变任何东西。

这是正在发生的事情的一个例子。

这是简单的公式ROUND((A1-B1)/ 2,4)

对于一条记录,我有值(.3159 - .3152),其值为.0007,然后除以2得到.00035。

对于下一个记录,我有值(.3554 - .3547),它也计算为.0007并除以2得到.00035

所以,即使两个值都是.00035,当我四舍五入到小数点后4位时,我得到的是.0003和另一个.0004。相同的数字,四舍五入到相同数量的地方,两个不同的结果。我怎样才能解决这个问题?

excel rounding
1个回答
1
投票

这是一个浮点数的问题,它是固有的,无法解决,只能避免。

在Excel中尝试这些测试:

=(0,3159-0,3152)=(0,3554-0,3547)给你FALSE

=(0,3159-0,3152)-(0,3554-0,3547)给你一些像5.55112E-17

如果你不能接受这些差异,你应该在计算过程中进行舍入,而不仅仅是在结束时:

=ROUND(0.3159-0.3152,4)=ROUND(0.3554-0.3547,4)TRUE

=ROUND(0.3159-0.3152,4)-ROUND(0.3554-0.3547,4)0

进一步阅读:Is floating point arithmetic stable?Binary floating point and .NET,备受好评的Jon Skeet。

© www.soinside.com 2019 - 2024. All rights reserved.