找到第二个最重要的数字

时间:2017-06-17 22:13:49

标签: node.js

我有一个场景,我需要比较两个数字,并确定第二个最重要的数字是否有差异。这些数字是十进制的,有10个位置。

0.0000098765
0.0000098766
// Change = false

0.0000098765
0.0000099765
// Change = true

0.0000098765
0.0000198765
// Change = true

查看上面的示例并重新思考我想知道第2或第1位有效数字何时发生变化的问题。

我知道怎么回事但是我不知道如何处理这个问题。

function significantDigitChange(number1, number2) {
  var shift1 = number1 * Math.pow(10,10);
  var shift2 = number2 * Math.pow(10,10);

  if ( shift1.toString().slice(0,2) != shift2.toString().slice(0,2) ) {
    return true
  } else {
    return false
  }
}

1 个答案:

答案 0 :(得分:0)

创建一个函数来将(正)数字截断为某些有效数字:

function toPrecision(n, precision) {
    var scale = 10 ** (Math.floor(Math.log10(n)) - precision + 1);

    return Math.trunc(n / scale) * scale;
}

在两个值上使用它并比较相等:

function significantDigitChange(n1, n2) {
    return toPrecision(n1, 2) !== toPrecision(n2, 2);
}