精确的十进制乘法(js评估)

时间:2014-04-23 11:31:38

标签: javascript

我正在进行js-assessment numbers.js练习。我认为我应该将十进制数乘以10乘以数字的幂数(例如0.22 - > 0.22 * 10 ^ 2 = 22)以在js中进行精确的十进制乘法。该解决方案适用于该测试。

我检查了该测试的作者提出的解决方案,但我无法弄清楚该算法是如何工作的。这是代码:

function adjust(num) {
    var exponent, multiplier;

    if (num < 1) {
      exponent = Math.floor( Math.log(num) * -1 );
      multiplier = Math.pow(10, exponent);

      return { adjusted: num * multiplier, multiplier: multiplier };
    }

    return { adjusted: num, multiplier: 1 };
  }

的证据是什么?
  

Math.floor(Math.log(num)* -1)

是否足够指数?

0 个答案:

没有答案