我已经写了下面的代码。我希望输出是:错误!除以零..。但我的输出是:无穷大。这段代码有什么问题?
//这是一门课:
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();
}发布于 2020-03-30 14:45:56
使用浮点和双类型的算术操作从不抛出异常。这些类型的算术运算的结果可以是表示无穷大而不是a-数字的特殊值之一:
double a = 1.0 / 0.0;
Console.WriteLine(a); // output: Infinity
Console.WriteLine(double.IsInfinity(a)); // output: True发布于 2020-03-30 14:45:27
您将得到除以零误差,只有在整数输入的情况下,在c#。对于双倍的期望输出是无穷大的。如果您想知道Double.IsInfinity是否除以零,则应该对它进行检查。
https://stackoverflow.com/questions/60933044
复制相似问题