在Excel中用小数点四舍五入

时间:2019-04-12 18:10:01

标签: excel excel-formula decimal excel-2007 digits

我需要帮助在excel中将小数点四舍五入。

我需要一个可以帮助我四舍五入到特定小数点的公式。例如,我有一个带有小数的数字列表,我希望该列表以9或5结尾,请参见示例:

3.82-> 3.85

5.38-> 5.39

2.96-> 2.95

9.45-> 9.45(保持不变)

9.06-> 9.05

11.48-> 11.49

6.12-> 6.15

5.32-> 5.35

如果看到的话,我的值以.06,.38,.12结尾,但我希望它们以最接近的9或5结束

已经尝试了汇总公式,但是没有用

2 个答案:

答案 0 :(得分:1)

这是另一种解决方案:

=(MROUND(A1*1000+5,50)-IF(MOD(MROUND(A1*1000+5,50),100)=0,10))/1000
  • 乘以1000可使我们使用整数,从而避免了使用小数时可能发生的舍入问题。 这假设您的值只有两个小数。如果还有更多,则可能需要稍作调整。(例如,将A1*1000+5更改为ROUND(A1*1000,0)+5
  • 添加5,因为您的舍入算法偏离了实际中点
  • 舍入到最接近的50
    • 如果最接近的50100的倍数,则减去10
  • 除以1000以返回根据您的算法四舍五入的原始值

enter image description here

答案 1 :(得分:0)

那是一个有趣的难题:

=IF(ABS(A1-(ROUND(A1,1)-0.01))=ABS(A1-IF(ABS(A1-(ROUND(A1,1)+0.05))<ABS(A1-(ROUND(A1,1)-0.05)),ROUND(A1,1)+0.05,ROUND(A1,1)-0.05)),MAX(A1-(ROUND(A1,1)-0.01),IF(ABS(A1-(ROUND(A1,1)+0.05))<ABS(A1-(ROUND(A1,1)-0.05)),ROUND(A1,1)+0.05,ROUND(A1,1)-0.05)),IF(ABS(A1-(ROUND(A1,1)-0.01))<ABS(A1-IF(ABS(A1-(ROUND(A1,1)+0.05))<ABS(A1-(ROUND(A1,1)-0.05)),ROUND(A1,1)+0.05,ROUND(A1,1)-0.05)),ROUND(A1,1)-0.01,IF(ABS(A1-(ROUND(A1,1)+0.05))<ABS(A1-(ROUND(A1,1)-0.05)),ROUND(A1,1)+0.05,ROUND(A1,1)-0.05)))

大难题,因为我们需要找到这两种可能性并进行测试以查看哪种可能性更近,如果出现平局,则返回最大值。

enter image description here