好吧,我想這個程序真的很容易。但是,當控制檯顯示x值(顯示在system.out中)時,我得到「當x是1.20000000000002 ....」。 我知道1.1 + 0.1不是1.200000000002,所以我只是想知道在我的語法中是否有錯。如果您決定運行代碼查看,您會立即看到我的問題。 如果有人有任何建議,我將不勝感激!奇怪的十進制輸出
謝謝
public class EulersMethod {
public static void main(String[] args) {
double x = 1;
double y = 1;
double h = 0.1;
while(x <= 1.4){
System.out.println("When x is " + x + ", y is " + y);
y = y + h * (- x - y);
x = x + h;
}
}
}
閱讀有關如何浮點電腦完成。 –
[This](http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html)可能會讓你感興趣。大多數精度問題的答案也是'BigDecimal'類。 – Pshemo
使用2的權力來執行,如0.5,0.25等。並且不要耗盡位。 – doctorlove