Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Math 抵押计算器数学_Math_Calculator - Fatal编程技术网

Math 抵押计算器数学

Math 抵押计算器数学,math,calculator,Math,Calculator,我正在尝试构建一个抵押贷款计算器应用程序,但我的数字有点不对劲,我想知道是否有人能洞察到我遗漏了什么。初始付款金额似乎是准确的,但随着年数和利率的增加,该值略有下降。如果这有什么不同的话,这是给加拿大的。付款金额也不等于借款金额。这是相关代码 double r = interestAmountValue/1200; double n = yearAmountValue * 12; double rPower = pow(1+r, n); double paymentAmt = loanAmou

我正在尝试构建一个抵押贷款计算器应用程序,但我的数字有点不对劲,我想知道是否有人能洞察到我遗漏了什么。初始付款金额似乎是准确的,但随着年数和利率的增加,该值略有下降。如果这有什么不同的话,这是给加拿大的。付款金额也不等于借款金额。这是相关代码

double r = interestAmountValue/1200;

double n = yearAmountValue * 12;
double rPower = pow(1+r, n);
double paymentAmt = loanAmountValue * r * rPower / (rPower - 1);

double totalPaymentd = paymentAmt * n;
double totalInterestd = totalPaymentd - loanAmountValue;

类型
double
通常实现为浮点数。尽管使用浮点运算速度很快,特别是在使用专用硬件时。这是一个有很好证明的问题:有关详细的讨论,请参阅《计算机编程艺术:半数值算法》第二卷


如果由您的语言提供,任意精度的数字类型可能会以牺牲某些速度为代价获得更好的精度(对于典型问题,在现代硬件上的大多数应用程序中,速度损失可能是不明显的)。在Java中就是这种类型。

这对于objective-c是什么?我不知道objective-c。如果OP不给出实际的数字,很难判断,但这感觉更像是错误的公式,而不是浮点错误。@Teepeemm
(.1+.2)*1000=300.0000000000000 6
浮点问题可能在相当普通的情况下变得明显。这就是为什么它们在金融环境中是不合适的。所以
r
是月利率,
n
是一年的支付金额,
yearAmountValue
是月数,
paymentAmt
是月支付金额?一些更具描述性的变量名可能会有所帮助。您尝试过哪些值给出的值是关闭的?1000000表示loanAmountValue,30年金额和8.00%利息金额付款金额才是真正的问题,而不是总付款额-例如,我刚才提供的数字显示,总付款额将为7337.65-这比我在加拿大抵押贷款计算器中输入这些金额时应该多90.53美元。我还应该注意,这是一个滑块-当我的初始值为10000-1年-1%时,每月付款金额是正确的,只有当这些值缩放得更高时,数字才会变得更不准确您使用的是什么抵押计算器,您从哪里获得公式?