我正在尝试比较两个 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 语句?
最佳答案
假设 latitude
和 longitude
也是 Double
,尝试调用两者的 doubleValue
:
if(longitude.doubleValue() == i1.doubleValue() && latitude.doubleValue() == i2.doubleValue())
或者只使用
equals
if(longitude.equals(i1) && latitude.equals(i2))
它派生在第一行,在引擎盖下。