更好的比率计算100:121 - > 1:1.21

时间:2014-06-25 22:03:09

标签: javascript

我计算了一些值,我使用以下代码生成比率(1:2,2:5等):

    var gcd,col1Sum = 100,col2Sum = 121;
    function calcGcd (a, b) {
        return (b == 0) ? a : calcGcd(b, a%b);
    }
    gcd = calcGcd(col1Sum, col2Sum);
    console.log(col1Sum / gcd +':'+ col2Sum / gcd);

在这个例子中,它产生了一些技术上正确但丑陋的比例(例如100:121)。我试图找到一种方法来生成给定任何大小值的小数比率。所以,在上面的例子中,我希望能够产生1:1.21而不是100:121。我已经考虑过在计算比率之后使用比率的长度和除法,但这看起来很不优雅,是否有更多的数学方法可以做到这一点?

1 个答案:

答案 0 :(得分:2)

如果您没有任何其他复杂要求,那么只需

var min = Math.min(col1Sum, col2Sum);

var r1 = col1Sum / min,
    r2 = col2Sum / min;

必须工作。