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 不成立,但如果涉及其他浮点运算,可能因舍入误差导致意外结果

相关推荐
Yeniden5 分钟前
Deepeek用大白话讲解 --> 迭代器模式(企业级场景1,多种遍历方式2,隐藏集合结构3,Java集合框架4)
java·开发语言·迭代器模式
SmoothSailingT14 分钟前
C#——LINQ方法
开发语言·c#·linq
景川呀15 分钟前
Java的类加载器
java·开发语言·java类加载器
yaoxin52112315 分钟前
274. Java Stream API - 过滤操作(filter):筛选你想要的数据
java·windows
小白勇闯网安圈18 分钟前
Java面向对象(上)
java
k***921618 分钟前
Python 科学计算有哪些提高运算速度的技巧
开发语言·python
superman超哥18 分钟前
仓颉条件变量深度解析与实践:解锁高效并发同步
开发语言·python·c#·仓颉
一点晖光18 分钟前
maven推送项目到harhor私有仓库
java·maven
代码or搬砖39 分钟前
MySQL窗口函数 OVER()讲解
java·mysql
道法自然|~1 小时前
【PHP】简单的脚本/扫描器拦截与重要文件保护
开发语言·爬虫·php