如果你用someInt(> 0)乘以低于1.0的最大值,结果永远不会是someInt。

这可以穷尽地测试整数,像这样:

Double greatestLessThanOne = Double.longBitsToDouble(4607182418800017407L);

// Assert that greatestLessThanOne is indeed the largest double less than 1.

//assert 1.0 == greatestLessThanOne + Math.ulp(greatestLessThanOne);

for (int i = 1; i >= 0; i++)

if ((int) (greatestLessThanOne * i) == i)

System.out.println("Exception found: " + i);

该代码段不产生输出。

(Math.ulp返回给定double和下一个大的double值之间的距离,因此断言确保highestLessThanOne确实是小于1.0的最大值)。

换句话说,你的行

Object element = elementArray[(int)(Math.random() * elementArray.length)];

永远不会产生ArrayIndexOutOfBoundsException。

此外,根据Mark Dickinsons的评论here,这也适用于乘以一个双。

With IEEE 754 floating-point arithmetic in round-to-nearest mode, you can show that x * y < y for any x < 1.0 and any non-tiny positive y. (It can fail if y is either subnormal or the smallest positive normal number.)

java 1000到9999_java – 可以0.99999999999乘以四舍五入到1.0?相关推荐

  1. java n%9==0_用C++实现求N!中末尾0的个数的方法详解

    题目描述: 输入一个正整数n,求n!(即阶乘)末尾有多少个0? 比如: n = 10; n! = 3628800,所以答案为2 输入描述: 输入为1行,n(1≤n≤1000) 输出描述: 输出一个整数 ...

  2. java 输入 方程,用java 编写一程序,求解一元二次方程:aX2+bX+c=0.参数a、b及c从命令行做参数输入 java...

    题目: 用java 编写一程序,求解一元二次方程:aX2+bX+c=0.参数a.b及c从命令行做参数输入 java 答案参考: 以下程序在jdk5.0测试通过 import java.util.Sca ...

  3. java 左边补0_java补充0 java数字左侧补零补0 NumberFormat实现数字左侧补0

    java补充0 java数字左侧补零补0 NumberFormat实现数字左侧补0 一.提出需求 1.在做一个编号生成规则中,有个规则如下: 编码序号为 5 位数,不足部分左侧补0. 二.代码实现 1 ...

  4. 新课重磅发布-Java开发微信朋友圈PC版系统(架构2.0+分布式中间件)

    继"Java开发微信朋友圈PC版系统-架构1.0" 课程之后,debug这段时间日撸夜撸,终于赶在春节放假前给诸位带来了这一系统的架构2.0版本,特此分享给诸位进行学习,以掌握.巩 ...

  5. Java 实现文章汉字关键词(违禁词)识别2.0

    说明:2.0相对1.0的算法改进 首先1.0是用父子节点树来保存树的,一个父对应多个子节点,这就不可避免要使用List来保存子节点,由于List的大小有限制,在1.0的时候加载的数据小于10万条,没有 ...

  6. Java 实现文章汉字关键词(违禁词)识别1.0

    1.面向应用 最近公司新开发的电商平台,要实现一些违禁词过滤.需求很简单,就是从数据库中读取内容,包括资讯,产品,公司简介之类,看看是否存在违禁词,有的话就把这条记录的ID存入违禁词文档.可以应用于分 ...

  7. java 整型减去字符_Java:从char中减去’0’得到一个整数……为什么这个有效?...

    这工作正常: int foo = bar.charAt(1) - '0'; 但这不是-因为bar.charAt(x)返回一个char: int foo = bar.charAt(1); 似乎从char ...

  8. 如何强制java服务器只接受tls 1.2并拒绝tls 1.0和tls 1.1连接

    如何强制java服务器只接受tls 1.2并拒绝tls 1.0和tls 1.1连接 javaweb项目使用tomcat作为运行服务器,使用默认传输协议进行传输,结果被安全软件扫描出漏洞,建议禁止tls ...

  9. java月份前面去掉0,JAVA日期格式输出月度前面不想被自动补0

    JAVA日期格式输出月份前面不想被自动补0 JAVA日期格式输出月份前面不想被自动补0,那么就用SimpleDateFormat("M/dd/yyyy");,一个M. 如果想被自动 ...

最新文章

  1. activity 的属性android:taskAffinity和android:allowTaskReparenting
  2. 用了这么久 IDEA,你竟然不知道有个功能叫自动补全!
  3. matlab yalmip 例程,YALMIP工具箱使用范例.pdf
  4. 打印100~200 之间的素数
  5. 大数的相加 乘 余 幂
  6. 如何在DB2安装重启后登陆Administrator系统账号
  7. PostgreSQL 获评2017 DB-Engines年度DBMS榜首
  8. php 生成器 封装,php生成器
  9. Mask Network与Conflux发起联合Bounty
  10. Nuget 管理报repositories.config 访问路径被拒绝 解决办法
  11. 在lamp上简单部署应用程序
  12. 设计模式总览及工厂模式详解
  13. PMP-37项目采购管理
  14. 排兵布阵 (分组背包)
  15. 实践项目一 项目开发团队分配管理
  16. 史上最全SpringBoot教程,从零开始带你深入♂学习(四)——web开发
  17. 新年的开始——关于过去现在和未来
  18. matlab绘制站点分布图
  19. idea protoc did not exit cleanly. Review output for more information.
  20. 线上打印马上送,支持线上打印文档的软件

热门文章

  1. 关联数组(associative array)
  2. python读txt文件报错UnicodeDecodeError: ‘gbk‘ codec can‘t decode
  3. AirFlow官方入门DAG示例
  4. java重定向cookie_response请求转发和重定向,cookie
  5. 1500度的近视能学计算机吗,1500度近视考驾照,近视多少度不能考驾照
  6. matlab求解helmholtz,MATLAB与科学计算(第2版)
  7. 台式电脑如何设置开机密码_设置苹果Mac电脑的开机密码-macw资讯
  8. python ftp timeout_python - FTP文件传输期间Python数据通道超时 - 堆栈内存溢出
  9. Win10系统如何查看声卡ID
  10. Win11系统如何调节字体大小