JoeSmith3100
@JoeSmith3100
Начинающий программист C#

Необходимо написать задачку на нахождение банковских процентов по вкладу, вопрос, — что не так?

Есть следующая прога, которая принимает на вход строку в формате "начальная сумма проценты по вкладу срок(мес)" и возвращает итоговую сумму, причём по заданию надо написать программку без использования циклов :

public static double Calculate(string userInput) {
		
		double initalAmmount = (double)Convert.ToDouble(userInput.Remove(userInput.IndexOf(' ')));
		userInput = userInput.Remove(0, userInput.IndexOf(' ') + 1);

		double percents = (double)((Convert.ToDouble(userInput.Remove(userInput.IndexOf(' ')))));
		userInput = userInput.Remove(0, userInput.IndexOf(' ') + 1);

		double mounthes = (double)Convert.ToDouble(userInput);

		return initalAmmount * (1 + mounthes * (percents / (12 * 100)));
	
}


Однако по каким то причинам она не работает, возвращая жуткие непонятные данные вроде этих:
Error on userInput [100 12 2] 		expected 102.01 but was 102
Error on userInput [1000 24 3] 		expected 1061.208 but was 1060
Error on userInput [1749.67 55.74 42] 	expected 11779.6504403219 but was 5163.101203
Error on userInput [8759.7 85.58 42] 	expected 158139.153610356 but was 34997.62941
Error on userInput [5920.75 65.4 25] 	expected 22312.1450988176 but was 13987.771875


Вопрос: что может быть не так? Есть ли ещё какие нибудь формулы для нахождения суммы, которая будет иметь место по окончанию срока вклада?
  • Вопрос задан
  • 175 просмотров
Решения вопроса 1
JoeSmith3100
@JoeSmith3100 Автор вопроса
Начинающий программист C#
Отбой, нашёл сам решение:
return initalAmmount * Math.Pow((1 + (percents/(12 * 100))),mounthes);

необходимо было не использовать идиотские формулы экономистов, а просто умножить начальную сумму на проценты возведённые в степень количества месяцев
тогда и получается желаемый эффект, по которому:
100 * 1,01^2 = 100 * 1,01 * 1,01 = 102,01
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы