首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将小数舍入为0,5,1

将小数舍入为0,5,1
EN

Stack Overflow用户
提问于 2015-06-28 18:43:57
回答 3查看 254关注 0票数 0

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

如何仅将小数舍入为0、5或1,例如:

代码语言:javascript
复制
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的另一种类型的示例:

代码语言:javascript
复制
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中用公式解决这个问题?

EN

回答 3

Stack Overflow用户

发布于 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的最接近的倍数。

票数 2
EN

Stack Overflow用户

发布于 2015-06-28 19:02:19

看起来你是在向下舍入到最接近的0.005。为此,尝试这个公式,它给出了您在示例中显示的结果:

代码语言:javascript
复制
=ROUNDDOWN(A1/0.005,0)*0.005

检查该公式是否也给出了负数的期望结果。在2010年之前的Excel版本中,需要修改FLOOR函数以使其适用于负数。

编辑:在下面的注释中,您已经更改了示例2的结果。现在,您似乎希望执行一个简单的ROUND,除非该值为nn.nn5 (例如,恰好在.005边界上)。

目前还不清楚您需要什么级别的精度,IEEE双精度浮点算术标准允许使用一些"slop“。因此,您将需要根据所需的精度级别来调整比较指数。

以下是结果,显示了Question中的原始示例和Comment中的不同示例

票数 0
EN

Stack Overflow用户

发布于 2015-06-28 19:10:34

您可以使用以下命令:

代码语言:javascript
复制
=FLOOR.MATH(A1, 0.005)

代码语言:javascript
复制
=ROUNDDOWN(A1 * 200; 0) / 200
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31098886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档