将小数舍入到0,5,1

在科威特(阿拉伯国家),我们在逗号后面用了三位小数,如(100.523,50.978,340.143,76.552,414,081等)。

如何将小数点只舍入到0或5或1,例如:

1. 50.231 rounding to **50.230** Keeping same 2. 50.232 rounding to **50.230** 3. 50.233 rounding to **50.230** 4. 50.234 rounding to **50.230** 5. 50.235 rounding to **50.235** Keeping same 

另一种四舍五入的例子是1:

 1. 50.236 rounding to **50.235** 2. 50.237 rounding to **50.235** 3. 50.238 rounding to **50.235** 4. 50.239 rounding to **50.235** 5. 50.240 rounding to **50.240** Keeping same. 

如果有可能可以通过使用一个公式或不是在Excel中解决这个问题?

你似乎做了一个FLOOR操作,而不是一轮。 不同的是,地板总是向下滚动,以精确的决定,而轮回到最近,无论是向上或向下。

使用Excel,您可以执行以下操作并设置精度:

=FLOOR(A1, 0.005)

有关参考,请参阅https://support.office.com/en-sg/article/FLOOR-function-14bb497c-24f2-4e04-b327-b0b4de5a8886

如果使用ROUND,你的例子

3. 50.238 rounding to **50.235** 4. 50.239 rounding to **50.235**

相反,由于这是0.005的最接近的倍数,所以会变成50.240

你可以使用这个:

 =FLOOR.MATH(A1, 0.005) 

要么

 =ROUNDDOWN(A1 * 200; 0) / 200 

看起来你正在四舍五入到0.005。 为此,请尝试使用此公式,其中给出了您在示例中显示的结果:

 =ROUNDDOWN(A1/0.005,0)*0.005 

检查该公式是否也为负数提供了期望的结果。 在2010年之前,FLOOR函数将需要被修改以用于Excel版本中的负数。

编辑:在你的评论下面,你已经改变了例2的结果。现在看来,你要执行一个简单的ROUND ,除非值是nn.nn5(例如完全在.005边界)。

目前尚不清楚你需要什么级别的精度,而IEEE的双精度浮点运算标准允许有一点“斜率”。 所以你需要调整比较指数取决于你想要的精度水平。

以下是结果,在您的问题中显示您的原始示例,并在您的评论中显示不同的示例集:

在这里输入图像说明