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("除数不能为零!");
}
}
}
展开
 我来答
rightmin
推荐于2016-02-09 · TA获得超过4124个赞
知道大有可为答主
回答量:2199
采纳率:0%
帮助的人:1802万
展开全部
原因是你使用双精度浮点数进行的计算,如果你使用整数就会报错了

浮点数并不是精确的,即使你输入的是0,实际上可能是一个很小很小接近零的数
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
du瓶邪
推荐于2018-03-28 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.7万
采纳率:100%
帮助的人:2929万
展开全部
C# (2008)以后定义了NaN,被零除后会得出NaN(+-无穷大……),NaN是一个“非数值”的数字,以适合科学应用!
因此,应做个判断:判断分母不为零(含+0、-0)。
C#不再报异常啦。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-06-26
展开全部
C#对浮点数提供了无穷,非0浮点数除以0都是无穷,0/0返回NaN
整数进行这种操作会异常
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lzh3452
2012-04-25 · TA获得超过1044个赞
知道小有建树答主
回答量:1168
采纳率:100%
帮助的人:860万
展开全部
y=0完全可以通过正常处理来判断,请不要写在异常处理中。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式