Java经典实例:比较浮点数
/**
* Created by Frank
* 比较浮点数
*/
public class FloatCmp {
// 公差
private final static Double EPSILON = 0.0000001; public static void main(String[] args) {
double da = 3 * .3333333333;
double db = 0.99999992857; // 基本类型可以优先使用==进行比较
if (da == db) {
System.out.println("Java considers " + da + "==" + db);
}
// 使用重载的equals方法
else if (equals(da, db, 0.0000001)) {
System.out.println("Equal within epsilon " + EPSILON);
} else {
System.out.println(da + "!=" + db);
}
} /**
* 在给定精度范围内比较2个double类型值
*
* @param a 参数a
* @param b 参数b
* @param eps 给定的公差值
* @return 比较结果
*/
public static boolean equals(double a, double b, double eps) {
return a == b || Math.abs(a - b) < eps;
} /**
* 在缺省的误差范围内比较2个double类型值
*
* @param a 参数a
* @param b 参数b
* @return 比较结果
*/
public static boolean equals(double a, double b) {
return equals(a, b, EPSILON);
}
}
Java经典实例:比较浮点数的更多相关文章
- Java经典实例:正则表达式,替换匹配的文本
import java.util.regex.Matcher; import java.util.regex.Pattern; /** * Created by Frank * 替换匹配的文本 */ ...
- Java 经典实例:自定义迭代器
编写自己的Iterator,实现Iterator接口,这里多说一句,实现Iterable后,可以用"foreach"循环遍历你的对象. import java.util.Itera ...
- Java经典实例:把字符串解析为日期时间
Java版本:1.8开始 import java.time.LocalDate; import java.time.LocalDateTime; /** * Created by Frank */ p ...
- Java经典实例:纪元秒和本地日期时间互换
Java版本:1.8开始 import java.time.Instant; import java.time.ZoneId; import java.time.ZonedDateTime; /** ...
- Java经典实例:使用DateFormatter来格式化日期时间
Java版本:1.8开始 import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; ...
- Java经典实例:使用ChoiceFormat来格式化复数
import java.text.ChoiceFormat; /** * Created by Frank */ public class FormatPuralsChoice extends For ...
- Java经典实例:在文本中匹配换行符
默认情况下,正则表达式 ^ 和 $ 忽略行结束符,仅分别与整个输入序列的开头和结尾匹配.如果激活 MULTILINE 模式,则 ^ 在输入的开头和行结束符之后(输入的结尾)才发生匹配.处于 MULTI ...
- Java经典实例:在正则表达式中控制大小写
默认是:区分大小写的: 传递标志参数:Pattern.CASE_INSENSITIVE,以说明匹配时忽略大小写:如果你的代码运行在不同的地区那么你应该再添加一个Pattern.UNICODE_CASE ...
- Java经典实例:正则表达式,找到匹配的文本
import java.util.regex.Matcher; import java.util.regex.Pattern; /** * Created by Frank */ public cla ...
随机推荐
- vue-cli创建项目
- NPM安装之后CMD中不能使用
NPM安装之后CMD中不能使用 这个情况就是path环境变量没有添加NPM 添加环境变量并重启CMD C:\Users\Mark\AppData\Roaming\npm\ 看看这个文件夹就知道为什么要 ...
- 创建oracle数据库job服务:PlSqlDev操作job
PlSqlDev操作job 创建job 1.选择job文件夹,右键 2.点击新建 3.对应填写完成,可以点击“查看SQL”查看sql语句,确定无误后,点击“应用”即创建完成 4.此时, ...
- Linux快速入门02-文件系统管理
继续进入Linux文件系统的学习,加油,早日突破MS压在自己身上的那道束缚. Linux系列文章 快速入门系列--Linux--01基础概念 快速入门系列--Linux--02文件系统管理 快速入门系 ...
- 深入理解CSS伪类
× 目录 [1]锚点 [2]UI元素 [3]结构伪类[4]其他 前面的话 伪类经常与伪元素混淆,伪元素的效果类似于通过添加一个实际的元素才能达到,而伪类的效果类似于通过添加一个实际的类来达到.实际上c ...
- poj2060Taxi Cab Scheme(二分图匹配)
/* 题意: 出租车 有一个出发的时间,从点(a, b)到点(c, d),时间为 abs(a-c)+abs(b-d)! 一辆车可以在运完一个乘客后运另一个乘客, 条件是此车要在预约开始前一分钟之前到达 ...
- spring源码分析之spring-core asm概述
ASM是什么? ASM is an all purpose Java bytecode manipulation and analysis framework. It can be used to m ...
- LeetCode:Maximum Depth of Binary Tree_104
LeetCode:Maximum Depth of Binary Tree [问题再现] Given a binary tree, find its maximum depth. The maximu ...
- Testing - 测试基础 - 自动
自动化测试模型 一个自动化测试框架就是一个集成体系,在这一体系中包含测试功能的函数库.测试数据源.测试对象识别标准,以及种可重用的模块. 自动化测试框架在发展的过程中,不断有新的模型(概念)被提出,目 ...
- Windows Azure Cloud Service (11) PaaS之Web Role, Worker Role(上)
<Windows Azure Platform 系列文章目录> 本文是对Windows Azure Platform (六) Windows Azure应用程序运行环境内容的补充. 我们知 ...