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

相关推荐
转基因1 分钟前
C++的IO流
开发语言·c++
MM_MS3 分钟前
Halcon控制语句
java·大数据·前端·数据库·人工智能·算法·视觉检测
一碗绿豆汤3 分钟前
Java语言概述和开发环境-1
java·开发语言
愈努力俞幸运7 分钟前
rust安装
开发语言·后端·rust
UrbanJazzerati14 分钟前
Python自动化统计工具实战:Python批量分析Salesforce DML操作与错误处理
后端·面试
小画家~18 分钟前
第四十六: channel 高级使用
java·前端·数据库
天天进步201530 分钟前
【Nanobrowser源码分析4】交互篇: 从指令到动作:模拟点击、滚动与输入的底层实现
开发语言·javascript·ecmascript
Li_yizYa30 分钟前
Redis-常见数据类型及应用场景
java·数据库·redis
麦兜*37 分钟前
【springboot】图文详解Spring Boot自动配置原理:为什么@SpringBootApplication是核心?
android·java·spring boot·spring·spring cloud·tomcat
console.log('npc')37 分钟前
vue2中子组件父组件的修改参数
开发语言·前端·javascript