Android:比较两个值不';行不通

Android:比较两个值不';行不通,android,if-statement,compare,rounding,decimalformat,Android,If Statement,Compare,Rounding,Decimalformat,目前我有个棘手的问题。。。我不知道我在哪里犯了错误 我有两对相同类型的值,我想知道它们是否相等。 当我打印日志中的值时,这些值相等,但我的if语句不起作用:/ 值来自类型double,但我使用BigDecimal将十进制数减少为两位数,如下所示 double a = 50.7739202f; BigDecimal bdA = new BigDecimal(a); BigDecimal A = bdA.setScale(2, BigDecimal.ROUND_DOWN); A和B是50.77 C

目前我有个棘手的问题。。。我不知道我在哪里犯了错误

我有两对相同类型的值,我想知道它们是否相等。 当我打印日志中的值时,这些值相等,但我的if语句不起作用:/

值来自类型double,但我使用BigDecimal将十进制数减少为两位数,如下所示

double a = 50.7739202f;
BigDecimal bdA = new BigDecimal(a);
BigDecimal A = bdA.setScale(2, BigDecimal.ROUND_DOWN);
A和B是50.77 C和D为60.07

但他总是去别的地方

 if(A == B && C == D){
    ...
 }
 else{
    ...
 }

要比较大小数,您应该使用它们的

compareTo()
方法,而不是“=”


要比较大小数,您应该使用它们的

compareTo()
方法,而不是“=”


要比较大小数,您应该使用它们的

compareTo()
方法,而不是“=”


要比较大小数,您应该使用它们的

compareTo()
方法,而不是“=”


=
测试对象的引用,而不是值。使用大十进制


compareTo
在值相等时返回0

=
测试对象的引用,而不是值。使用大十进制


compareTo
在值相等时返回0

=
测试对象的引用,而不是值。使用大十进制


compareTo
在值相等时返回0

=
测试对象的引用,而不是值。使用大十进制


compareTo
在值相等时返回0

在两个对象上使用
=
时,比较它们的内存引用


A==B
(A和B都是对象)意味着
A的数据是否存储在与B相同的内存位置?

当您在两个对象上使用
==
时,您正在比较它们的内存引用


A==B
(A和B都是对象)意味着
A的数据是否存储在与B相同的内存位置?

当您在两个对象上使用
==
时,您正在比较它们的内存引用


A==B
(A和B都是对象)意味着
A的数据是否存储在与B相同的内存位置?

当您在两个对象上使用
==
时,您正在比较它们的内存引用


A==B
(A和B都是对象)表示A的数据是否与B的数据存储在同一存储位置?

您是否厌倦了使用
Double.compare
来比较双值?使用Double.compare方法来比较双值的比较您厌倦了使用
Double.compare
来比较双值吗?使用Double.compare方法来比较双值比较你厌倦了使用Double.compare比较Double.compare方法比较Double.compare方法比较Double.compare方法比较Double.compare比较Double.compare方法比较Double.compare方法比较Double.compare方法比较Double.compare方法比较Double.compare方法比较Double.compare方法比较Double.compare方法比较Double.compare方法比较Double.compare方法比较Double.compare方法比较Double值的比较上帝,非常感谢你。我对java非常陌生^^不要忘记检查正确的答案,如果它包含解决方案。哦,上帝,非常感谢你,我现在没有。我对java非常陌生^^不要忘记检查正确的答案,如果它包含解决方案。哦,上帝,非常感谢你,我现在没有。我对java非常陌生^^不要忘记检查正确的答案,如果它包含解决方案。哦,上帝,非常感谢你,我现在没有。我对java非常陌生^^^如果它包含解决方案,请不要忘记检查正确答案。