java 1000到9999_java – 可以0.99999999999乘以四舍五入到1.0?
如果你用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?相关推荐
- java n%9==0_用C++实现求N!中末尾0的个数的方法详解
题目描述: 输入一个正整数n,求n!(即阶乘)末尾有多少个0? 比如: n = 10; n! = 3628800,所以答案为2 输入描述: 输入为1行,n(1≤n≤1000) 输出描述: 输出一个整数 ...
- 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 ...
- java 左边补0_java补充0 java数字左侧补零补0 NumberFormat实现数字左侧补0
java补充0 java数字左侧补零补0 NumberFormat实现数字左侧补0 一.提出需求 1.在做一个编号生成规则中,有个规则如下: 编码序号为 5 位数,不足部分左侧补0. 二.代码实现 1 ...
- 新课重磅发布-Java开发微信朋友圈PC版系统(架构2.0+分布式中间件)
继"Java开发微信朋友圈PC版系统-架构1.0" 课程之后,debug这段时间日撸夜撸,终于赶在春节放假前给诸位带来了这一系统的架构2.0版本,特此分享给诸位进行学习,以掌握.巩 ...
- Java 实现文章汉字关键词(违禁词)识别2.0
说明:2.0相对1.0的算法改进 首先1.0是用父子节点树来保存树的,一个父对应多个子节点,这就不可避免要使用List来保存子节点,由于List的大小有限制,在1.0的时候加载的数据小于10万条,没有 ...
- Java 实现文章汉字关键词(违禁词)识别1.0
1.面向应用 最近公司新开发的电商平台,要实现一些违禁词过滤.需求很简单,就是从数据库中读取内容,包括资讯,产品,公司简介之类,看看是否存在违禁词,有的话就把这条记录的ID存入违禁词文档.可以应用于分 ...
- java 整型减去字符_Java:从char中减去’0’得到一个整数……为什么这个有效?...
这工作正常: int foo = bar.charAt(1) - '0'; 但这不是-因为bar.charAt(x)返回一个char: int foo = bar.charAt(1); 似乎从char ...
- 如何强制java服务器只接受tls 1.2并拒绝tls 1.0和tls 1.1连接
如何强制java服务器只接受tls 1.2并拒绝tls 1.0和tls 1.1连接 javaweb项目使用tomcat作为运行服务器,使用默认传输协议进行传输,结果被安全软件扫描出漏洞,建议禁止tls ...
- java月份前面去掉0,JAVA日期格式输出月度前面不想被自动补0
JAVA日期格式输出月份前面不想被自动补0 JAVA日期格式输出月份前面不想被自动补0,那么就用SimpleDateFormat("M/dd/yyyy");,一个M. 如果想被自动 ...
最新文章
- activity 的属性android:taskAffinity和android:allowTaskReparenting
- 用了这么久 IDEA,你竟然不知道有个功能叫自动补全!
- matlab yalmip 例程,YALMIP工具箱使用范例.pdf
- 打印100~200 之间的素数
- 大数的相加 乘 余 幂
- 如何在DB2安装重启后登陆Administrator系统账号
- PostgreSQL 获评2017 DB-Engines年度DBMS榜首
- php 生成器 封装,php生成器
- Mask Network与Conflux发起联合Bounty
- Nuget 管理报repositories.config 访问路径被拒绝 解决办法
- 在lamp上简单部署应用程序
- 设计模式总览及工厂模式详解
- PMP-37项目采购管理
- 排兵布阵 (分组背包)
- 实践项目一 项目开发团队分配管理
- 史上最全SpringBoot教程,从零开始带你深入♂学习(四)——web开发
- 新年的开始——关于过去现在和未来
- matlab绘制站点分布图
- idea protoc did not exit cleanly. Review output for more information.
- 线上打印马上送,支持线上打印文档的软件
热门文章
- 关联数组(associative array)
- python读txt文件报错UnicodeDecodeError: ‘gbk‘ codec can‘t decode
- AirFlow官方入门DAG示例
- java重定向cookie_response请求转发和重定向,cookie
- 1500度的近视能学计算机吗,1500度近视考驾照,近视多少度不能考驾照
- matlab求解helmholtz,MATLAB与科学计算(第2版)
- 台式电脑如何设置开机密码_设置苹果Mac电脑的开机密码-macw资讯
- python ftp timeout_python - FTP文件传输期间Python数据通道超时 - 堆栈内存溢出
- Win10系统如何查看声卡ID
- Win11系统如何调节字体大小