在科威特(阿拉伯国家),我们在逗号后使用三个小数,例如(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中用公式解决这个问题?
发布于 2015-06-28 18:55:16
你好像是在做地板手术,而不是一轮。不同的是,地板总是向下舍入,精确到确定的精度,而圆形总是向上或向下舍入到最近的位置。
使用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**
将取整为50.240,因为它是0.005的最接近的倍数。
发布于 2015-06-28 19:02:19
看起来你是在向下舍入到最接近的0.005。为此,尝试这个公式,它给出了您在示例中显示的结果:
=ROUNDDOWN(A1/0.005,0)*0.005检查该公式是否也给出了负数的期望结果。在2010年之前的Excel版本中,需要修改FLOOR函数以使其适用于负数。
编辑:在下面的注释中,您已经更改了示例2的结果。现在,您似乎希望执行一个简单的ROUND,除非该值为nn.nn5 (例如,恰好在.005边界上)。
目前还不清楚您需要什么级别的精度,IEEE双精度浮点算术标准允许使用一些"slop“。因此,您将需要根据所需的精度级别来调整比较指数。
以下是结果,显示了Question中的原始示例和Comment中的不同示例

发布于 2015-06-28 19:10:34
您可以使用以下命令:
=FLOOR.MATH(A1, 0.005)或
=ROUNDDOWN(A1 * 200; 0) / 200https://stackoverflow.com/questions/31098886
复制相似问题