ローンの返済可能額(毎月の複合利息)を示す文字列出力を生成するための小さなプログラムを作成しようとしています。私は2つのオンライン計算機を使って作業を検証していますが、どちらもお互いに違いがあります。結果の異なる償却スケジュール計算
- 融資額:1000
- 率:7%
- 期間:36ヶ月
- 毎月返済予定:30.78
- 総返済可能:£1108.04(これは結果に近い私は よ期待値)
上記は、次のオンライン計算機によって確認されます。https://www.moneysupermarket.com/loans/calculator/
しかし、ほとんどすべての他のオンライン計算機に私が取得:
- 毎月返済予定:30.88
- 総返済可能:£1,111.53
例:
https://en-gb.calculatestuff.com/financial/loan-amortization-calculator
さらに私自身のコードでは、1,111.53が得られます。だから、私は最終的な価値が正しいかどうか混乱している。私は最初に見つけた値である1108.04の値に近づきたいと思いますが、私がここで何が欠けているかはわかりません。
public void CompoundCalculator(double lenderRate, double loanPeriodInMonths, double desiredLoanAmount){
var repaymentAmount = PMT(7, 36, 1000);
var balance = desiredLoanAmount;
var totalInterest = 0.00;
for (var i = 0; i < loanPeriodInMonths;i++)
{
var monthlyInterest = Math.Round(balance * ((lenderRate/1200)),2);
balance -= Math.Round(repaymentAmount - monthlyInterest,2) ;
totalInterest += monthlyInterest;
}
//do something here later with totalInterest variable
}
public static double PMT(double yearlyInterestRate, int totalNumberOfMonths, double loanAmount)
{
var rate = (double)yearlyInterestRate/100/12;
var denominator = Math.Pow((1 + rate), totalNumberOfMonths) - 1;
return (rate + (rate/denominator)) * loanAmount;
}
どこでも2倍の値を使用していることを確認してください。たとえば100.0/12.0とします。つまり計算に使用されているevey番号はfloat/double – pm100
こんにちはpm100です。ありがとうございます。私はキーの整数のすべてがdouble型として宣言されるようにいくつかの調整を加えましたが、残念ながらそれは何の違いもありませんでした。 – Sulphy
最初の電卓がちょっとだけ奇妙です。私はそれを手動で計算し、同じ答えを得ました。これは推測ですが、最初の電卓を所有している会社は、競争よりも見栄えを良くするために、その額を少し下げているかもしれません。 –