C#

Решил попробовать изучать программирование (C# конкретно) и вот не могу понять почему код с упражнения не работает

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Project_17
{
internal class Program
{
static void Main(string[]arg)
{ // программа нормально не работает, вообще хз почему
double rublesInWallet;
double dollarsInWallet;

int rubToUsd = 64, usdToRub = 66;

double exchangeCurrencyCount;
string desiredOperation;

Console.WriteLine("Вас приветсвует обменник валют.");

Console.Write("Введите баланс рублей ");
rublesInWallet = Convert.ToSingle(Console.ReadLine());

Console.Write("Введите баланс долларов ");
dollarsInWallet = Convert.ToSingle(Console.ReadLine());

Console.WriteLine("Выберите необходимую операцию");
Console.WriteLine("1 - рубли на доллары");
Console.WriteLine("2 - доллары на рубли");

Console.Write("Ваш выбор: ");
desiredOperation = Console.ReadLine();

switch(desiredOperation)
{
case "1":
Console.WriteLine("Обмен рублей на доллары: ");
Console.WriteLine("Сколько рублей желаете обменять? ");
exchangeCurrencyCount = Convert.ToSingle( Console.Read ());
if (rublesInWallet >= exchangeCurrencyCount)
{
rublesInWallet -= exchangeCurrencyCount;
dollarsInWallet += exchangeCurrencyCount / rubToUsd;
}
else
{
Console.WriteLine("Эээээ, у тебя столько нет");
}
break;
case "2":
Console.WriteLine("Обмен долларов на рубли");
Console.WriteLine("Сколько долларов желаете обменять? ");
exchangeCurrencyCount = Convert.ToSingle( Console.Read ());
if (dollarsInWallet >= exchangeCurrencyCount)
{
dollarsInWallet -= exchangeCurrencyCount;
rublesInWallet += exchangeCurrencyCount * usdToRub;
}
else
{
Console.WriteLine("Эээээ, у тебя столько нет");
}
break;
default:
Console.WriteLine("Че?");
break;

}
Console.WriteLine($"Ваш баланс: {rublesInWallet} рублей и {dollarsInWallet} долларов");
Console.ReadKey();
}
}
}


(пожалуйста, без негатива)
P.S да, это из видеотуториала с юбуба
Проблема в вашем коде заключается в использовании метода Console.Read () для чтения значения обмена валюты. Метод Console.Read () возвращает символ, а не числовое значение. Вместо этого вы должны использовать метод Convert.ToSingle(Console.ReadLine()), чтобы прочитать числовое значение из консоли.
Вот исправленный код:
 using System; 
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Project_17
{
internal class Program
{
static void Main(string[] arg)
{
double rublesInWallet;
double dollarsInWallet;

int rubToUsd = 64, usdToRub = 66;

double exchangeCurrencyCount;
string desiredOperation;

Console.WriteLine("Вас приветствует обменник валют.");

Console.Write("Введите баланс рублей: ");
rublesInWallet = Convert.ToSingle(Console.ReadLine());

Console.Write("Введите баланс долларов: ");
dollarsInWallet = Convert.ToSingle(Console.ReadLine());

Console.WriteLine("Выберите необходимую операцию");
Console.WriteLine("1 - рубли на доллары");
Console.WriteLine("2 - доллары на рубли");

Console.Write("Ваш выбор: ");
desiredOperation = Console.ReadLine();

switch (desiredOperation)
{
case "1":
Console.WriteLine("Обмен рублей на доллары: ");
Console.WriteLine("Сколько рублей желаете обменять? ");
exchangeCurrencyCount = Convert.ToSingle(Console.ReadLine());
if (rublesInWallet >= exchangeCurrencyCount)
{
rublesInWallet -= exchangeCurrencyCount;
dollarsInWallet += exchangeCurrencyCount / rubToUsd;
}
else
{
Console.WriteLine("Эээээ, у тебя столько нет");
}
break;
case "2":
Console.WriteLine("Обмен долларов на рубли");
Console.WriteLine("Сколько долларов желаете обменять? ");
exchangeCurrencyCount = Convert.ToSingle(Console.ReadLine());
if (dollarsInWallet >= exchangeCurrencyCount)
{
dollarsInWallet -= exchangeCurrencyCount;
rublesInWallet += exchangeCurrencyCount * usdToRub;
}
else
{
Console.WriteLine("Эээээ, у тебя столько нет");
}
break;
default:
Console.WriteLine("Че?");
break;
}
Console.WriteLine($"Ваш баланс: {rublesInWallet} рублей и {dollarsInWallet} долларов");
Console.ReadKey();
}
}
}
Денис Казак
Денис Казак
25 860
Лучший ответ
Владимирович Ф Большое спасибо)
попроси у chat-GPT исправить код
Владимирович Ф ок, попробую