在Excel中向上或向下舍入小数

问题描述 投票:-1回答:2

我需要帮助在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上完成

已经尝试过综合公式,但没有奏效

excel excel-formula decimal excel-2007 digits
2个回答
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


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

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