我正在把头发扯掉,这可能是一个非常简单的
我有一个方程式:
((100000 + (2400 / 0.04)) * ((1 + 0.04)**5) - (2400 / 0.04)) * 0.99
谷歌计算器给了我需要的答案,是133317.82
在我的控制台中,这也给了我133317.82,这是正确的
以下内容应该是等效的,但给出了完全不同的答案?
(100000 + (2400 / 0.04)) * (Math.pow((1 + 0.04),5) - (2400 / 0.04)) * 0.99
我把括号弄混了吗?Math.pow不起作用吗Math.pow(基数,指数(?
您可以使用以下表达式。(我去掉了多余的括号。(
console.log(((100000 + 2400 / 0.04) * Math.pow(1 + 0.04, 5) - 2400 / 0.04) * 0.99);
两个表达式之间的括号不同:
((100000 + (2400 / 0.04)) * (Math.pow(1 + 0.04,5)) - (2400 / 0.04)) * 0.99
工作正常。最初,第二个表达式没有对乘以0.99
的整个子表达式进行分组。
这两个表达式有不同的括号,导致它们的求值方式不同。
让我们分解一下常见的元素:
a = (100000 + (2400 / 0.04));
b1 = ((1 + 0.04)**5);
b2 = Math.pow((1 + 0.04),5);
c = (2400 / 0.04);
使用这个映射,你的第一个表达式是:
(a * b1 - c) * 0.99
第二个是:
a * (b2 - c) * 0.99
你应该能够清楚地看到,在第二个表达式中,你改变了括号的分组,只从b2
而不是(a * b2)
中减去了c
。如果你修正括号,两者是一样的。
console.log(((100000 + (2400 / 0.04)) * Math.pow(1 + 0.04, 5) - (2400 / 0.04)) * 0.99);