java面试0106-java什么时候会出现i>i+1和i<i-1?

  1. 整数溢出

    int i = Integer.MAX_VALUE; // 2,147,483,647

    System.out.println(i > i + 1); // true

    int i2 = Integer.MIN_VALUE; // -2,147,483,648

    System.out.println(i2 < i2- 1); // true

  2. 浮点数精度问题

    double i = Double.MAX_VALUE; // 1.7976931348623157E308

    System.out.println(i3 > i 3+ 1); // false

    i + 1 的加法由于精度限制不会改变 i 的值(因为 1 相对于 Double.MAX_VALUE 太小)。

    因此,i 和 i + 1 实际上相等,i > i + 1 不成立,但如果涉及其他浮点运算,可能因舍入误差导致意外结果

相关推荐
练习时长一年3 小时前
Java开发者进阶之路
java·开发语言
去往火星3 小时前
文字转语音——sherpa-onnx语音识别离线部署C++实现
开发语言·c++
SunnyDays10113 小时前
Java 高效实现 PowerPoint 转 PDF:不依赖Office
java·ppt转pdf·powerpoint转pdf·pptx转pdf·幻灯片转pdf
ganshenml4 小时前
【Android】两个不同版本的jar放进一个工程打成aar会有问题么?
android·java·jar
灰什么鱼4 小时前
项目同时打war和jar两种包
java·jar
爱隐身的官人4 小时前
Linux配置Java/JDK(解决Kali启动ysoserial.jar JRMPListener报错)暨 Kali安装JAVA8和切换JDK版本的详细过程
java·linux·kali
semicolon_hello4 小时前
C++中 optional variant any 的使用
开发语言·c++
草莓熊Lotso5 小时前
《测试视角下的软件工程:需求、开发模型与测试模型》
java·c++·测试工具·spring·软件工程