四舍五入到最接近的 N 数

Posted

技术标签:

【中文标题】四舍五入到最接近的 N 数【英文标题】:Round to the nearest N number 【发布时间】:2014-06-09 16:56:17 【问题描述】:

我有一组十进制数字,我需要将它们四舍五入到以 7 结尾的最接近的数字。

例如:

0.45 --> 0.47
4.70 --> 4.67
6.49 --> 6.47
8.32 --> 8.37

我可以为此使用 Excel 或 Access(基本上是 VBS)。

我可以只取小数点后 2 位,将其转换为整数 (*100),然后应用舍入规则,然后将原始值的整数值前置。

例如:

0.45 --> 45 --> 47 --> 0.47
4.70 --> 70 --> 67 --> 4.67
6.49 --> 49 --> 47 --> 6.47
8.32 --> 32 --> 37 --> 8.37

我已经尝试了舍入公式:

Let N represent the nearest number to round to.
Let X represent the input number.
output = ROUND(X / N, 0) * N

但是这并没有给出预期的结果。

例如:

0.45 --> ROUND(45 / 7, 0) * 7 --> 42 != 47
4.70 --> ROUND(70 / 7, 0) * 7 --> 70 != 67
6.49 --> ROUND(49 / 7, 0) * 7 --> 49 != 47
8.32 --> ROUND(32 / 7, 0) * 7 --> 28 != 37

如何四舍五入到以 7 结尾的最接近的数字?

【问题讨论】:

澄清一下,不应该将 8.32 舍入 向下,因为它比 8.27 高 5 个单位? (keiv 的公式向上取整 8.32,这是我所期望的)。 @Jerry 是的,你是对的。是一个快速的数学类型-o ;-P 【参考方案1】:

您只能四舍五入为零。因此,您需要以 0.07 为 0.00 的方式转换数字。例如,您可以添加 0.03 或减去 0.07。然后在四舍五入后做相反的事情(减去 0.03 或加上 0.07)并得到你想要的数字。

代码:

=ROUND(A1+0.03, 1) - 0.03

【讨论】:

以上是关于四舍五入到最接近的 N 数的主要内容,如果未能解决你的问题,请参考以下文章

打印没有科学格式的双精度并四舍五入到最接近的整数[关闭]

如何四舍五入到最接近的偶数?

如何四舍五入到最接近的十分位?

在R中将时间四舍五入到最接近的小时[重复]

Pandas - 将时间戳四舍五入到最接近的秒数

将时间四舍五入到最接近的秒数 - Python