Есть аналогичный ответ на мой вопрос, но ситуация не совсем такая. Однако я делаю калькулятор погашения кредита, но когда я запускаю эту итерацию, я получаю «NaN» независимо от того, какие числа я использую. Я не уверен, что моя математика ошибается или я злоупотребляю «Математикой». функция.Консоль продолжает давать мне NAN
int choice=1;
do{
Console.WriteLine("1. Find out how many months it will take to pay off the loan: ");
Console.WriteLine("2. Can I afford it? ");
Console.WriteLine("3. Exit ");
choice = int.Parse(System.Console.ReadLine());
if (choice == 1)
{
Console.WriteLine("Enter amount borrowed: ");
double borrowed = double.Parse(System.Console.ReadLine());
Console.WriteLine("Enter the interest rate: ");
double rate = double.Parse(System.Console.ReadLine());
Console.WriteLine("Enter monthly payment: ");
double monthly = double.Parse(System.Console.ReadLine());
double answer = Math.Ceiling((Math.Log10(monthly)-Math.Log10(monthly-borrowed*rate))/(Math.Log10(1+rate/12)));
Console.WriteLine(answer);
Вы пробовали использовать отладчик? – clcto
Консоль не «дает» NaN. Он просто печатает значение, предоставленное ему. Вернитесь назад и узнайте, где было введено NaN; затем задайте * конкретный * вопрос об этом, если он останется. Я бы рекомендовал разбить длинное выражение раньше; это поможет изолировать вопрос о том, где NaN (ы) были впервые введены. Имейте в виду, что NaN являются заразными и будут загрязнять всю дальнейшую математику. – user2864740
Можете ли вы быть более конкретным. – user3980820