【问题标题】:C# DivideByZeroException won't execute [duplicate]C# DivideByZeroException 不会执行
【发布时间】:2020-07-10 23:15:32
【问题描述】:

我已经写了下面的代码。我希望输出是:错误!除以零.. 但我的输出是:无穷大。 这段代码有什么问题?

//这是类:

 public class Exc    
 {
    private double number1;
    private double number2;
    public double result;

    public Exc(double n1,double n2)
    {
        this.number1 = n1;
        this.number2 = n2;
    }

    public void Div(double number1, double number2)
    {

        try
        {
            result = number1 / number2;
            Console.WriteLine(result);
        }

        catch (DivideByZeroException e)
        {
            Console.WriteLine("Error! Division by zero.{0}",e);

        }

    }
}

//这是我的程序:

static void Main(string[] args)
{

    Console.WriteLine("Enter the first number:");
    double n1 = Convert.ToDouble(Console.ReadLine());
    Console.WriteLine("Enter the second number:");
    double n2 = Convert.ToDouble(Console.ReadLine());

    Exc obj = new Exc(n1, n2);
    obj.Div(n1,n2);

    Console.ReadKey();
}

【问题讨论】:

标签: c# exception


【解决方案1】:

float 和 double 类型的算术运算永远不会引发异常。这些类型的算术运算的结果可以是表示无穷大和非数字的特殊值之一:

double a = 1.0 / 0.0;
Console.WriteLine(a);                    // output: Infinity
Console.WriteLine(double.IsInfinity(a)); // output: True

Source

【讨论】:

  • 谢谢!我现在明白了:)
【解决方案2】:

只有在 c# 中输入整数时,才会出现除零错误。对于 double ,所需的输出是无穷大。如果你想知道它是否被零除,你应该检查Double.IsInfinity

【讨论】:

  • 明白了。谢谢!
猜你喜欢
  • 2023-03-03
  • 1970-01-01
  • 2016-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多