java - 带偏移量的 double 最接近的倍数 java

标签 java math rounding

我正在尝试获取最接近的 5.3 倍数,偏移量为 20。

例如。

  • 21.3 将变为 20
  • 25.1 将变为 25.3
  • 29.4 将变为 30.6

等等。

我知道如何使用最接近的倍数

x = 5.3f*(Math.round(x/5.3))

但是如何调整偏移量呢?

最佳答案

在计算之前,您需要从 X 中减去偏移量 20,并在计算之后将其添加回来。

像这样:

x = 5.3f * Math.round((x - 20) / 5.3) + 20
//                       ^-- subtract ^-- add back in 

关于java - 带偏移量的 double 最接近的倍数 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43036819/

相关文章:

c++ - 实现格雷厄姆扫描以找到凸包

c# - 为什么解析后的 double 不等于假定具有相同值的初始化 double ?

ios - 根据第一个非零将数字舍入到最接近的 "nth"

java - invokeLater/invokeAndWait 和 asyncExec/syncExec 的区别

java - 在 Java 中获取屏幕大小作为静态变量

在 C 中计算 64x64 int 产品的高 64 位

javascript - 仅将数字舍入为 2.5 的因数

java整数舍入(除法相关)

java - 解释一下Java中的多态性?

java - 如何将 zip 文件转换为八位字节流