Java之两个double 比较大小

 

double a = 0.001;
double b = 0.0011;
BigDecimal data1 = new BigDecimal(a);
BigDecimal data2 = new BigDecimal(b);
data1.compareTo(data2)
非整型数,运算由于精度问题,可能会有误差,建议使用BigDecimal类型!

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。


//--------------------------------------------------------------------------------------------------------------------------------------------

非整型数,运算由于精度问题,可能会有误差,建议使用BigDecimal类型,具体BigDecimal的详细说明参考jdk开发帮助文档。



  1. import java.math.BigDecimal;  
  2. public class DoubleCompare {  
  3. public String compare(BigDecimal val1, BigDecimal val2) {  
  4.     String result = "";  
  5.     if (val1.compareTo(val2) < 0) {  
  6.         result = "第二位数大!";  
  7.     }  
  8.     if (val1.compareTo(val2) == 0) {  
  9.         result = "两位数一样大!";  
  10.     }  
  11.     if (val1.compareTo(val2) > 0) {  
  12.         result = "第一位数大!";  
  13.     }  
  14.     return result;  
  15. }  
  16. public static void main(String[] args) {  
  17.     double a = 0.01;  
  18.     double b = 0.001;  
  19.     BigDecimal data1 = new BigDecimal(a);  
  20.     BigDecimal data2 = new BigDecimal(b);  
  21.     System.out.print(new DoubleCompare().compare(data1, data2));  
  22. }  




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值