Member 13975230 Ответов: 2

Как вывести ноль в калькуляторе?


Итак, я новичок, и мне нужно было создать калькулятор. Проблема в том, что я не знаю, как сделать так, чтобы если "4 / 0 = 0; 9/0= 0" и так далее.

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

namespace Sav4
{
    class Program
    {
        static void Main(string[] args)
        {
            
            char x;
            double a;
            double b;
            double ats;
            Console.WriteLine("insert first number ");
            a = double.Parse(Console.ReadLine());
            Console.WriteLine("insert second number ");
            b = double.Parse(Console.ReadLine());
            Console.WriteLine("insert inc "); // - + * /
            x = (char)Console.Read();
            Console.Clear();
            if (x == '-' )
            {
                ats = a - b;
                Console.WriteLine("{0} - {1} = {2}", a, b, ats);
            }
            else
            {
                if (x == '+')
                {

                    ats = a + b;
                    Console.WriteLine("{0} + {1} = {2}", a, b, ats);
                }
                else
                {
                    if (x == '*')
                    {
                        ats = a * b;
                        Console.WriteLine("{0} * {1} = {2}", a, b, ats);
                    }
                    else
                    {
                        if (x == '/')
                        {
                            ats = a / b;
                            if (a/b != 0)
                            {
                                Console.WriteLine("{0} / {1} = {2}", a, b, ats);
                            }
                            else
                            {
                                Console.WriteLine("Lygybe neegzistuoja", a, b, ats);
                            }
                        }
                        else
                        {
                            Console.WriteLine("Error");
                        }
                        } }
                }
            }
            }

        }


Что я уже пробовал:

Я думаю, что много думаю, вот и все

2 Ответов

Рейтинг:
0

OriginalGriff

Если b является нулем, то пытается сделать это:

ats = a / b;
даст вам исключение, потому что деление на ноль не дает вам числа "реального мира", которое вы можете хранить в double
Очень определенно, 0 - это не правильный результат!

Так что есть два способа справиться с этим:
1) проверьте, прежде чем делить! Поставьте быстрый тест, прежде чем пытаться, и сообщите о проблеме, если она не будет работать вместо того, чтобы делать это.
2) Использовать try...catch блок для обнаружения ошибок и их изящной обработки: попробовать-поймать (Справочник по c#) | Майкрософт документы[^]


Richard Deeming

На самом деле, поскольку он использует double оператор разделения, он не произведет исключение. Результатом будет либо то, либо другое double.PositiveInfinity или double.NegativeInfinity, в зависимости от знака a.

Рейтинг:
0

Sunnys72

Привет,

Ниже приведен код для вывода нуля, если мы делим любой двойной на ноль.
Предположим, что у нас есть:

double a = 10, b = 0, c=0;
          try
          {
              c = double.IsInfinity(a / b) ? 0 : a / b;
          }
          finally
          {
              Console.WriteLine(c);
          }


Цитата:
Здесь, если мы используем double, то мы не получаем исключение "DivideByZeroException", тогда оно просто возвращает бесконечность. Double также имеет метод проверки бесконечности, То есть "double.IsInfinity()". Используя этот метод, вы можете проверить, является ли результат Бесконечностью или нет, и вы можете предпринять соответствующие действия.

В вашем случае код будет следующим: :

arts=double.IsInfinity(a / b) ? 0 : a / b;


Спасибо.


phil.o

Возврат нуля в случае деления на ноль-это математически неверно.
Это не потому, что вы можете это сделать, что вы должны это сделать.