【问题标题】:Javascript: Round up and down to the nearest 5, then find a common denominatorJavascript:向上和向下四舍五入到最接近的 5,然后找到一个公分母
【发布时间】:2012-05-10 14:10:20
【问题描述】:

我正在寻找一种方法来向上和向下舍入到最接近的 5,然后找到这两个数字的一​​个很大的公分母。 我需要它作为图表上 y-skale 的标题。

这是我目前的代码:

function toN5( x ) {
    var i = 1;
    while( x >= 100 ) {
        x/=10; 
        i*=10;
    }
    var remainder = x % 5;
    var distance_to_5 = (5 - remainder) % 5;
    return (x + distance_to_5) * i;
}

目标是这样的: 最大值(四舍五入到最接近的5)

1379.8 -> 1500

反之亦然 - 最小值(向下舍入到最接近的 5)

41.8 -> 0

然后我想找到一个共同的分母,比如 250 或 500

0 -> 250 -> 500 -> 750 -> 1000 -> 1250 -> 1500

或:

0 -> 500 -> 1000 -> 1500

有没有办法做这样的事情?非常感谢

【问题讨论】:

  • 1379.8 四舍五入到最接近的 5 将是 1380。您的意思是“到最接近的 500”吗?
  • 四舍五入到底是什么意思?在您的第一个和第二个示例中,您实际上是四舍五入到最接近的 500。或最接近的 250,这取决于您如何看待它。

标签: javascript jquery rounding


【解决方案1】:

如果要将 x 舍入到最接近的 500,可以将其除以 500,将其四舍五入到最接近的整数,然后再乘以 500:

x_rounded = 500 * Math.round(x/500);

要将其四舍五入到最接近的 y,请将 500 替换为 y

x_rounded = 250 * Math.round(x/250);

【讨论】:

  • 听起来不错,但问题在于,这些值可能很大也可能很小。例如 1500 和 0.23。
  • 那么您需要更具体地向我们说明您希望如何对数字进行四舍五入。目前,您的问题实际上并没有说出您的意思。
  • 非常好的答案。如果我想接近 0.05 或 0.1,我只需要执行 0.05* Math.round(x/0.05)
  • 感谢您的回答。像这样的问题太糟糕了。这显然是在帮助人们。
【解决方案2】:

希望我的数学是正确的,但这里有各种“四舍五入”的方法

function sigfig(n, sf) {
    sf = sf - Math.floor(Math.log(n) / Math.LN10) - 1;
    sf = Math.pow(10, sf);
    n = Math.round(n * sf);
    n = n / sf;
    return n;
}

function precision(n, dp) {
    dp = Math.pow(10, dp);
    n = n * dp;
    n = Math.round(n);
    n = n / dp;
    return n;
}

function nearest(n, v) {
    n = n / v;
    n = Math.round(n) * v;
    return n;
}

demo

【讨论】:

    【解决方案3】:

    使用this api,您可以使用以下命令将任何数字向上或向下四舍五入到最接近的任意数字的倍数:

    $scm.round(number to be rounded).toNearest(multiple to which you want to round);

    例如,如果您想将 536 舍入到最接近的 500,您可以使用:

    $scm.round(536).toNearest(500);

    【讨论】:

    • 糟糕,我才意识到这个问题是 5 年前提出的。管理员可以关闭吗?好像没有任何活动...
    猜你喜欢
    • 2013-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多