为了账号安全,请及时绑定邮箱和手机立即绑定

什么决定了 Java 除法运算中的 Nan 和 Infinity

什么决定了 Java 除法运算中的 Nan 和 Infinity

慕码人2483693 2021-07-09 18:04:57
下面代码的输出让我很困惑。为什么NaN有时和Infinity 有时?public static void main (String[] args) {    double a = 0.0;    double b = 1.0;    int c = 0;     System.out.println(a/0.0);    System.out.println(a/0);    System.out.println(b/0.0);    System.out.println(b/0);    System.out.println(c/0.0);    System.out.println(c/0);}输出是:NaNNaNInfinityInfinityNaNException in thread "main" java.lang.ArithmeticException: / by zero这里的决定因素是什么?
查看完整描述

1 回答

?
月关宝盒

TA贡献1772条经验 获得超5个赞

这是因为IEEE 浮点算术标准 (IEEE 754)是由电气和电子工程师协会 (IEEE) 于 1985 年制定的浮点计算技术标准。


目的:

IEEE 浮点标准,.. 指定每个浮点算术运算,包括除以零,都有一个明确定义的结果。该标准支持带符号的零,以及 无穷大NaN(不是数字)。有两个零:+0(正零)和 -0(负零),这消除了除法时的任何歧义


规则:

在IEEE 754算术运算,a ÷ +0正无穷大a是 负无穷大a,并且为NaNa = ±0.



查看完整回答
反对 回复 2021-07-14
  • 1 回答
  • 0 关注
  • 225 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信