Как сделать так, что бы при делении было десятичное число в C#? C#. Мне нужно что бы при вызове функции Div(6, 4) (например, т.е. не обязательно 6 и 4) возвращалось значение 1.5. Но возвращается совсем другое;\ Если что, другие арифметические действия не доделалstatic decimal Div(int a, int b)
{
decimal sum = a / b;
return sum;
}
static void Main(string[] args)
{
Console.WriteLine("Введите действие. / * + -");
string Znak = Console.ReadLine();
if (Znak == "/")
{
Console.WriteLine("Введите делимое");
int a = int.Parse(Console.ReadLine());
Console.WriteLine("Введите делитель");
int b = int.Parse(Console.ReadLine());
while (b == 0)
{
Console.WriteLine("Делитель должен быть больше 0. Введите число больше 0");
b = int.Parse(Console.ReadLine());
}
Console.WriteLine("{0} / {1} = {2}", a, b, Div(a, b));

}
Console.ReadKey();

21 Авг 2019 в 06:05
127 +1
0
Ответы
1

Измените тип переменных a и b в функции Div на decimal, чтобы дробное деление происходило в соответствии с типом результата.

Вот исправленный код:

static decimal Div(decimal a, decimal b)
{
decimal sum = a / b;
return sum;
}
static void Main(string[] args)
{
Console.WriteLine("Введите действие. / * + -");
string Znak = Console.ReadLine();
if (Znak == "/")
{
Console.WriteLine("Введите делимое");
decimal a = decimal.Parse(Console.ReadLine());
Console.WriteLine("Введите делитель");
decimal b = decimal.Parse(Console.ReadLine());
while (b == 0)
{
Console.WriteLine("Делитель должен быть больше 0. Введите число больше 0");
b = decimal.Parse(Console.ReadLine());
}
Console.WriteLine("{0} / {1} = {2}", a, b, Div(a, b));
}
Console.ReadKey();
}

Теперь при вызове функции Div(6, 4) будет возвращаться значение 1.5.

20 Апр 2024 в 13:24
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир