У меня есть этот код C#, который вычисляет сложные проценты плюс основную сумму каждый год.
static void CompoundInterest(double principal, double interestRate, double years, double annualCompound)
{
var total = 0.0;
for (int t = 1; t < years + 1; t++)
{
total = principal * Math.Pow((1 + interestRate / annualCompound),
(annualCompound * t));
Console.Write("Your Total for Year {0} "
+ "is {1}. \n", t, total);
}
}
Когда я тестировал его с
CompoundInterest(1000, 0.05, 3, 12);
, и результат был
Your Total for Year 1 is 1051.161897881733.
Your Total for Year 2 is 1104.941335558327.
Your Total for Year 3 is 1161.4722313334678.
Как правильно округлить? Другой вопрос: Math.Pow
использует double
, но в финансовых расчетах нам нужно decimal
. Как это исправить? Преобразовать в десятичное после Math.Pow
?