C# 异常处理 1/0 为什么自动显示正无穷大,而不是报异常呢?
usingSystem;classProgram{staticvoidMain(string[]args){try{doublex,y;x=double.Parse(Co...
using System;
class Program
{
static void Main(string[] args)
{
try
{
double x, y;
x = double.Parse(Console.ReadLine());
y = double.Parse(Console.ReadLine());
Console.WriteLine("{0}+{1}={2}", x, y, x + y);
Console.WriteLine("{0}/{1}={2}", x, y, x / y);
}
catch (System.FormatException)
{
Console.WriteLine("请输入正确数字!");
}
catch (System.DivideByZeroException) {
Console.WriteLine("除数不能为零!");
}
}
} 展开
class Program
{
static void Main(string[] args)
{
try
{
double x, y;
x = double.Parse(Console.ReadLine());
y = double.Parse(Console.ReadLine());
Console.WriteLine("{0}+{1}={2}", x, y, x + y);
Console.WriteLine("{0}/{1}={2}", x, y, x / y);
}
catch (System.FormatException)
{
Console.WriteLine("请输入正确数字!");
}
catch (System.DivideByZeroException) {
Console.WriteLine("除数不能为零!");
}
}
} 展开
4个回答
展开全部
原因是你使用双精度浮点数进行的计算,如果你使用整数就会报错了
浮点数并不是精确的,即使你输入的是0,实际上可能是一个很小很小接近零的数
浮点数并不是精确的,即使你输入的是0,实际上可能是一个很小很小接近零的数
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C# (2008)以后定义了NaN,被零除后会得出NaN(+-无穷大……),NaN是一个“非数值”的数字,以适合科学应用!
因此,应做个判断:判断分母不为零(含+0、-0)。
C#不再报异常啦。
因此,应做个判断:判断分母不为零(含+0、-0)。
C#不再报异常啦。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-06-26
展开全部
C#对浮点数提供了无穷,非0浮点数除以0都是无穷,0/0返回NaN
整数进行这种操作会异常
整数进行这种操作会异常
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
y=0完全可以通过正常处理来判断,请不要写在异常处理中。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询