浮点数的大小比较问题
来源:互联网 发布:淘宝5年老店标志没了 编辑:程序博客网 时间:2024/04/27 18:56
众所周知,计算机表示小数时(float和double),都存在精度上的误差。那么在进行涉及小数的计算时,如果直接拿浮点数计算就会出现精度或是舍入上的奇怪问题。
考虑比较两个小数a和b的大小:
1.如果不需要极度精确的情况,我们可以写作
if(a - b > -0.0000001) &&(a - b < 0.0000001){
//则认为两个数相等
}
2.当然,若需要绝对相等,可以考虑使用BigDecimal进行比较:
BigDecimal a = new BigDecimal(double );
BigDecimal b = newBigDecimal(double );
int compare = a.compareTo(b);
compareTo
public int compareTo(BigDecimal val)
- 将此 BigDecimal 与指定的 BigDecimal 比较。根据此方法,值相等但具有不同标度的两个 BigDecimal 对象(如,2.0 和 2.00)被认为是相等的。相对六个 boolean 比较运算符 (<, ==, >, >=, !=, <=) 中每一个运算符的各个方法,优先提供此方法。建议使用以下语句执行上述比较:(x.compareTo(y) <op>0),其中 <op> 是六个比较运算符之一。
- 指定者:
- 接口
Comparable<BigDecimal>
中的compareTo
- 参数:
val
- 将此 BigDecimal 与之比较的 BigDecimal。- 返回:
- 当此 BigDecimal 在数字上小于、等于或大于 val 时,返回 -1、0 或 1。
0 0
- 浮点数的大小比较问题
- 浮点数比较大小的问题
- 浮点数比较大小的问题
- 浮点数的大小比较
- 浮点数的大小比较
- 浮点数的大小比较
- 关于浮点数运算的比较大小问题
- 浮点数比较大小
- 浮点数比较大小
- 浮点数比较大小
- 浮点数比较大小
- 浮点数比较大小
- C++ 之 浮点数的大小比较
- 比较两个浮点数的大小
- 浮点数比较的问题
- PHP浮点数比较大小
- iOS 浮点数格式字符串比较大小 精度问题
- 浮点数比较问题
- 2014.08.12集训总结 NOI(P) 模拟赛Day1
- 马士兵struts2视频教程第二十七集
- 一道数组排序题
- 【140813】程序员面试宝典完整版 pdf
- 循环链表
- 浮点数的大小比较问题
- Render To Texture
- 1408122118-hd-Switch Game.cpp
- 为什么不能丢外外链
- Ubuntu-Jdk安装
- leetcode Word Ladder
- 【线段树】 HDOJ 4942 Game on S♂play
- Java中遇到的超级愚蠢的错误
- linux网络编程——初探TCP