1

我正在尝试制作转换器,但我不知道执行此操作的公式,例如,如何获得 30711152 的 85694 的比率。所以,我可以得到 85694/30711152*100=0.28 这样的百分比(四舍五入)但是我怎样才能得到 100 中 1 的比例呢?我相信那会是1:400左右?但我不知道如何准确地得到它或使用什么公式......

4

3 回答 3

5

比率为 1 英寸30711152 / 85694。只需反转分数。

于 2010-10-15T21:46:03.153 回答
5

我意识到这已经很老了,但我最近遇到了这个问题。我需要给出给定人口的两个部分的关系,其中数字可能非常大,但需要一个简化的比例,例如 3:5 或 2:7。我想出了这个,希望它有帮助:

function getRatio(a, b, tolerance) {

  /*where a is the first number, b is the second number,  and tolerance is a percentage 
  of allowable error expressed as a decimal. 753,4466,.08 = 1:6, 753,4466,.05 = 14:83,*/

  if (a > b) {
    var bg = a;
    var sm = b;
  } else {
    var bg = b;
    var sm = a;
  }
  for (var i = 1; i < 1000000; i++) {
    var d = sm / i;
    var res = bg / d;
    var howClose = Math.abs(res - res.toFixed(0));
    if (howClose < tolerance) {
      if (a > b) {
        return res.toFixed(0) + ':' + i;
      } else {
        return i + ':' + res.toFixed(0);
      }
    }
  }
}















// Ignore this below

const compute = () => {
  const a = parseInt(document.getElementById('a').value) || 1,
    b = parseInt(document.getElementById('b').value) || 1,
    tolerance = parseInt(document.getElementById('tol').value) / 10 || 1
  document.getElementById('output').innerHTML= `${a} / ${b} | <strong>${getRatio(a,b,tolerance)}</strong> | tolerance: ${tolerance}`
}
input{border-radius:5px;border:.5px solid #000;padding:10px}p{font-family:system-ui;font-size:18pt;padding-left:20px}strong{font-size:36pt}
<div> <input id="a" oninput="compute()" placeholder="Enter first number"/> <input id="b" oninput="compute()" placeholder="Enter second number"/> <input id="tol" oninput="compute()" placeholder="Tolerance" type="number" min="1" max="10"/> <p id="output"></p></div>

于 2017-12-20T23:38:03.530 回答
1

嗯,这个比例保持不变。如果你有 3:12 的比例,它相当于 1:4 的比例,这反过来相当于 25%。

所以 85694 : 30711152 = 1 : 358.381。

于 2010-10-15T21:50:33.670 回答