我正在尝试比较两个 double 值:

for(int i=0;i<count;i++){
    Double i1=Double.parseDouble(pref.getString("longitude"+i, null));
    Double i2=Double.parseDouble(pref.getString("latitude"+i,null));
    Log.i("Longitude", i1+"");
    Log.i("Latitude",i2+"");
    Log.i("Longitude1",longitude+"");
    Log.i("Latitude1", latitude+"");
    Log.i("note",pref.getString("note"+i, null));


    if(longitude==i1&&latitude==i2) {
        String note=pref.getString("note"+i, null);
        txt.setText(note);
    }
}

共享首选项中有一种与经度和纬度匹配的组合,但是如果当我比较它时没有为 textview txt 分配任何值。但是在日志中纬度和纬度的值相同。有人可以告诉我这有什么问题吗比较为什么它不执行 txt.settext 语句?

最佳答案

假设 latitudelongitude 也是 Double,尝试调用两者的 doubleValue:

if(longitude.doubleValue() == i1.doubleValue() && latitude.doubleValue() == i2.doubleValue())

或者只使用 equals
if(longitude.equals(i1) && latitude.equals(i2))

它派生在第一行,在引擎盖下。

10-07 17:12