【问题标题】:finding value gained where am I going wrong?找到获得的价值我哪里错了?
【发布时间】:2021-03-07 14:09:33
【问题描述】:

我正在尝试编写一个简单的脚本,它会告诉我从两个值之间的百分比差异中获得的数量。这是我所拥有的,但它没有返回正确的金额。

function percentUP (money,newNum,Orignal){
    var increase = newNum - Orignal;
    var percent = Math.floor(Math.round(increase/Orignal*100));
    var gains = Math.round((money/percent)*100);
    
    return "you would make £" + gains + " from your " + "£" + money + " investment"
};

我一直在用 (10,30,10) 增加 200% 的简单函数对其进行测试,结果应该是:

“您将从 10 英镑的投资中赚取 30 英镑”

但是我得到: “您将从 10 英镑的投资中赚取 5 英镑”

对不起,如果这真的很明显,我现在只是在学习。

【问题讨论】:

  • 10 到 30 不是增加了 200% 吗?
  • 对不起,我计算错了。

标签: javascript function math percentage


【解决方案1】:

您在gains 计算中犯了一个错误。您的 percent 在您的示例中等于 200。您想将钱乘以它并除以 100。

您的计算:money / 200 * 100 = money / 2
预期计算:money * 200 / 100 = money * 2

更正的代码:

function percentUP(money, newNum, orignal) {
  var increase = newNum - orignal;
  var percent = Math.round(increase / orignal);
  var gains = Math.round(money * percent);

  return `you would make £${gains} from your £${money} investment`
};

PS 您还可以从 percent 计算中删除 Math.round 调用。它只会影响准确性。

【讨论】:

  • 非常感谢,我完全没有弄错,谢谢。
【解决方案2】:

收益计算似乎有误。它应该是原始 +(原始 * 百分比 / 100)。那应该是 10 + (10 * 200/100)。您也可以在上面的示例中使用您的货币变量而不是 Original。根据您的计算结果,我不确定差异。

另外,不确定百分比形式的目的是什么,使用小数形式更简单,即 2 而不是 200%。这样可以避免两次转换。

【讨论】:

  • 妈的,你说的对,谢谢指出,对不起我写的方式我还不习惯JS,还在慢慢学习。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-03
  • 2018-01-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多