我有這樣的代碼:爲什麼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