在JAVA中怎么比较Double类型数据的大小

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在JAVA中怎么比较Double类型数据的大小相关的知识,希望对你有一定的参考价值。

你如果是要普通比较直接用数学符号即可,指的在其jvm允许的范围内如果,你是要很准确的精度比较运算,由于精度问题,可能会有误差,建议使用BigDecimal类型!

//普通比较
Double obj1 = new Double("0.001");
Double obj2 = new Double("0.0011");
obj1.compareTo(obj2);

//精度准确比较
double a=obj1;
double b=obj2; 
BigDecimal data1 = new BigDecimal(a); 
BigDecimal data2 = new BigDecimal(b); 
data1.compareTo(data2); 

//该方法两种类都有
public int compareTo(BigDecimal val)
/*将此 BigDecimal 与指定的 BigDecimal 比较。根据此方法,值相等但具有不同标度的两个 BigDecimal对象(如,2.0 和 2.00)被认为是相等的。相对六个 boolean 比较运算符 (<, ==, >, >=, !=, <=) 中每一个运算符的各个方法,优先提供此方法。
 *参数:val - 将此 BigDecimal 与之比较的 BigDecimal。
 *返回:当此 BigDecimal 在数字上小于、等于或大于 val 时,返回 -1、0 或 1。
 */

参考技术A 几乎所有数字类型的,同类型的,可以直接比较
如 a , b 两个比较

类似如下:
if(a>b)

不同类型,一般按照大的那个类型来比较
海枫科技
参考技术B public static void main(String[] args) 
Double d1 = 1.1D;
Double d2 = 2.2D;

System.out.println(d1.doubleValue() > d2.doubleValue());

double 比较大小

参考技术A https://www.yiibai.com/java/lang/double_compare.html

如果要比较的两个double数据的字符串精度相等,可以将数据转换成string然后借助string的equals方法来间接实现比较两个double数据是否相等。注意这种方法只适用于比较精度相同的数据,并且是只用用于比较是否相等的情况下,不能用来判断大小。

以上是关于在JAVA中怎么比较Double类型数据的大小的主要内容,如果未能解决你的问题,请参考以下文章

在JAVA中怎么比较Double类型数据的大小

在JAVA中怎么比较Double类型数据的大小

double 比较大小

double类型大小比较的方法

double类型大小比较的方法

java中long型怎么比较大小