表达式1.0 / 0.0将返回什么?它会抛出异常吗?任何编译时错误?

过去的,未来的
2020-03-04 / 0 评论 / 0 点赞 / 637 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2020-03-19,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

这个问题,我还之前没想过,刚才实验了下...

image.png

我们来分析下:

我们知道,在整型运算中,除数是不能为0的,否则直接运行异常。但是在浮点数运算中,引入了无限这个概念,我们来看一下Double和Float中的定义。

Double:

public static final double POSITIVE_INFINITY = 1.0 / 0.0;

public static final double NEGATIVE_INFINITY = -1.0 / 0.0;


Float:

public static final float POSITIVE_INFINITY = 1.0f / 0.0f;

public static final float NEGATIVE_INFINITY = -1.0f / 0.0f;

因为double里面没有完完全全的正儿八经的0,你看到的0,实际上可能是0.0000000000000...1,n个0之后忽然出来个1,那么就相当于除以一个最小的数,那么得到的值就会无穷大。然后无穷就是这么来的。

0

评论区