【问题标题】:JavaScript Math formulaJavaScript 数学公式
【发布时间】:2012-05-29 21:41:11
【问题描述】:

我得到了以下 Excel 公式来计算贷款的法式系统利息:

=+G15*B15/(1-(1+G15)^(-H15))

地点:

G15 = 1.33%
B15 = importe
H15 = plazo

由于我通常对解决问题的顺序有疑问,所以我将公式分解为小部分。这就是我所拥有的

// user input
var importe = parseFloat($('#importe_prestamo').val());
var plazo = parseFloat($('#plazo_prestamo').val());

//formula
var formula1 = 0.0133 * importe;
var parentesis1 = parseFloat(1 + importe);
var potencia = Math.pow(parentesis1,plazo);
var parentgde = 1 - potencia;
var totalcount = formula1 / parentgde;
console.log(totalcount);

我在“importe”中输入 10000,在 plazo 中输入“144”,但得到 totalcount = 0,因为“var potencia”返回“Infinity”

我已经为这个项目做了几个星期的各种公式,我对这么多信息感到困惑,现在我不知道如何继续解决这个公式。任何指针都会很棒。谢谢

【问题讨论】:

  • 你错过了一个减号:var potencia = Math.pow(parentesis1,plazo);
  • 想想你在做什么:importe+1 = 10001,你把它提高到 144 次方。这意味着像 10^148 这样的数字。什么电脑能代表这么大的数字?将其与宇宙中的原子数量进行比较:universetoday.com/36302/atoms-in-the-universe
  • 我在这里以盲模式驾驶,我一直在处理这个项目的所有公式的噩梦。我阅读了我的代码数十次,并没有发现我错过了一个 1-,我需要对此有一个新的想法。谢谢 Gandaro,您想将其作为分析器发布,所以我将其标记为答案?

标签: javascript math


【解决方案1】:

你错过了那一行的减号:

var potencia = Math.pow(parentesis1,plazo);

应该是

var potencia = Math.pow(parentesis1, -plazo);

虽然你可以将整个公式写在一行中……

编辑:如何? ;-)

var G15 = 0.0133, B15 = importe, H15 = plazo;
var total = G15 * B15 / (1 - pow(1 + G15, -H15));

【讨论】:

  • 同意...一个班轮会更好:D
  • 知道为什么给定 G=15、B=10000、H=144 和 0.1325 而不是 0.133 在 excel 中公式等于 155.93 而在 javascript 132.5 中?
  • 你能说使用你以前用过的名字吗?在你的公式中,G[15] 是 0.0133,你想是 0.1325,但你说 G=15。
【解决方案2】:

根据公式...

var parentesis1 = parseFloat(1 + importe);

应该是

var parentesis1 = parseFloat(1 + 0.0133);

如前所述,你也错过了 -.

【讨论】:

  • 对!我错过了那个。 ;-)
猜你喜欢
  • 1970-01-01
  • 2014-11-25
  • 1970-01-01
  • 1970-01-01
  • 2018-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多