System.out.println(10 / 3.0); 這行代碼輸出的是3.3333333333333335我知道有兩個知識點:1.整數和小數進行運算的時候,整數的類型自動提升為double類型,兩個double類型進行相除運算,結果得到小數(也就是3.3333333333333335),即10先自動提升為double類型,再和3.0進行除法運算2./獲取的是除法操作的商,%獲取的是除法操作的余數而我的問題是:這行代碼怎么算到是3.3333333333333335?不知道這么想對不對:按照我們平時的計算法則,10除以3的商是3,余數是1,但是10變成double和同樣是double類型的3.0進行除法運算就涉及到二進制除法了,先把double這個8字節的數據類型展開成32個二進制位,然后進行二進制的除法計算得到補碼,然后補碼倒推出源碼,把商提取出來
添加回答
舉報
0/150
提交
取消