大佬們,求幫助!為什么我在transfer方法中添加了一個if判斷的代碼,為什么結果明明是100000.00,系統卻認為返回的能量總值不為100000.00,執行了if內的輸出語句
大佬們,求幫助!為什么我在transfer方法中添加了一個if判斷的代碼,為什么結果明明是100000.00,系統卻認為返回的能量總值不為100000.00,執行了if內的輸出語句?哪里出了問題呢!謝謝大佬們



大佬們,求幫助!為什么我在transfer方法中添加了一個if判斷的代碼,為什么結果明明是100000.00,系統卻認為返回的能量總值不為100000.00,執行了if內的輸出語句?哪里出了問題呢!謝謝大佬們



2019-03-29
舉報
2019-07-09
這涉及到浮點型精度不準確問題,建議你把兩邊都轉成int類型,進行比較
2019-05-21
樓上說的對,getTotal返回的準確值未必是100000.00,只是格式化之后舍棄了一些東西才顯示的是100000.00
2019-04-01
打印一下getTotalEnergies的返回值,這個方法返回值是一個double類型的值,存儲的并不一定就是100000.00,這個是格式化后的數字
System.out.print(Thread.currentThread().getName()); energyBoxes[from]?-=?amount; System.out.printf("從%d轉移%10.2f單位能量到%d",?from,?amount,?to); energyBoxes[to]?+=?amount; System.out.printf("?能量總和:%10.2f%n",?getTotalEnergies()); System.out.println("能量總和:"+getTotalEnergies()); //喚醒所有在lockObj對象上等待的線程 lockObj.notifyAll();打印結果