首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

打破你的认知,java,除以0一定会崩溃吗?

为什么浮点数除以0不会崩溃? 我们先说结论: 因为java的float和double使用了 IEEE 754 标准。 这个标准规定:浮点数除以0等于正无穷或负无穷。...翻译成中文: 1.0/0.0 等于正无穷大,1.0/-0.0 等于负无穷大 于是我们明白,浮点数除以0并不会崩溃,他是 合法的 ,是 符合IEEE 754规范 。...我们即使知道了,浮点数除以0不会崩溃,知道了IEEE标准,有什么用呢? 很多人都会觉得,费这么大劲,理解了,浮点数除以0不会崩溃,能有什么用呢?平时我们写代码都不会除以0。...但是当我们刚好遇到除以0导致的bug的时候,这个时候就非常有用。...如果我们的认知是错误的,任何数除以0都会崩溃,那么我们的分析将会直接绕过真相去推理。于是得出结论,怎么可能有bug,不可能的。 于是浪费了很多时间,去收集线索,去推翻我们固有的认知,才能找到真相。

1.5K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    学习了这么些年,请问编程中除以 0 一定抛异常吗?

    引言在计算机编程中,除以 0 是一个常见的错误操作。对于整数类型来说,这种操作通常会导致程序抛出 ArithmeticException 异常,终止程序执行。...具体地:a / 0,其中 a 为任意非零数,数学上无法给出明确的结果,因为任何数乘以零都不能得出非零数,因此除以零无解。...例如,6.6 / 0 返回 Infinity,它并不是计算错误,而是一个数学上的概念:正无穷大。类似地,-6.6 / 0 返回 -Infinity,而 0 / 0 返回 NaN。...= 0d / 0; System.out.println("6.6 / 0 = " + positiveInf); // Infinity System.out.println...// NaN }}运行结果:6.6 / 0 = Infinity-6.6 / 0 = -Infinity0 / 0 = NaN这种设计确保了浮点数运算的稳定性。

    26830
    领券