代码之家  ›  专栏  ›  技术社区  ›  Alex

根据日期列表[重复]查找每个数据库行最近的日期

  •  0
  • Alex  · 技术社区  · 6 年前

    如何将浮点值四舍五入到“n”的最近倍数?

    例如,将21.673四舍五入到8的最接近倍数应得到24。

    并且,将21.673四舍五入到4的最接近倍数应得到20。

    我需要JavaScript的解决方案。

    谢谢!

    0 回复  |  直到 9 年前
        1
  •  3
  •   Misaz    9 年前

    这很容易

    Math.round(value / n) * n
    
        2
  •  1
  •   Yevhen Horbunkov    5 年前

    还有一个,稍微短一点,稍微长一点 faster

    const nearrestMultipleOfN = (N,n) => n*(N/n+0.5|0);
    

    const nearrestMultipleOfN = (N,n) => n*(N/n+0.5|0);
     
     console.log(nearrestMultipleOfN(21.673,8));
     console.log(nearrestMultipleOfN(21.673,4));
    .as-console-wrapper{min-height:100%}

    如果你发现自己在找 n 那个 不超过 N (即返回6,当给定8时可被3整除),您可以这样做:

    const nearrestMultipleOfN = (N,n) => n*(N/n|0);