下面的Java代码在if else语句中没有返回true ...
public class DecimalComparator {
public static void main(String[] args) {
System.out.println(areEqualByThreeDecimalPlaces(25.367876,25.367873));
}
public static boolean areEqualByThreeDecimalPlaces(double a, double b){
DecimalFormat threePreshizen = new DecimalFormat("###.###");
String aNew = threePreshizen.format(a);
String bNew = threePreshizen.format(b);
System.out.println(aNew);
System.out.println(bNew);
if (aNew == bNew){
return true;
}else {
return false;
}
}
}
我希望它返回“ true”。
答案 0 :(得分:0)
用以下内容替换if块:
return aNew.equals(bNew);
这将基于两个字符串的内容是否匹配,而不是它们的内存引用的值是否相等,返回一个布尔值。
如果您希望您的任何一个字符串都为null
,请改用
return Objects.equals(aNew, bNew);