我有这样的代码:为什么EditText的Double.parseDouble总和返回一个不同的值?
try {
Ciocco_V.tot = Double.parseDouble(Et444Tot.getText().toString());
} catch (NumberFormatException e) {
e.printStackTrace();
}
try {
Ciocco_V.burro = Double.parseDouble(Et111Burro.getText().toString());
} catch (NumberFormatException e) {
e.printStackTrace();
}
try {
Ciocco_V.fibra = Double.parseDouble(Et222Fibra.getText().toString());
} catch (NumberFormatException e) {
e.printStackTrace();
}
和edittex里边有这个号码:
44.2(驴)和40.6(FIBRA)84.8(TOT)
if (((Ciocco_V.burro + Ciocco_V.fibra) != Ciocco_V.tot) {
//fail condition
} else {
// correct
}
如果我检查条件Ciocco_V.burro + Ciocco_V.fibra返回此值: 84.80000000000001 和我的IF失败.... 为什么?
这实在是太多了approsimative在此contidion((Ciocco_V.burro + Ciocco_V.fibra) - Ciocco_V.tot)> 0.00000001)的返回值是: 1.4210854715202004E-14, 我如果条件一样修改这个: if((Math.abs((Ciocco_V.burro + Ciocco_V.fibra) - Ciocco_V.tot)> 0.00000001) 并且这个工作很好 – 2014-08-29 00:01:08
是啊我的答案没有测试。很高兴帮助 – rhodysurf 2014-08-29 00:03:01