老師教編程的時候 應該都有特別強調過吧 兩個小數相等 不能用等號 而應該用他們的差的絕對值小於壹個很小的數 比如 math.abs(a-b) < 10e-6
原因是 電腦是用二進制存儲數據 而類似0.1這樣的數字 在電腦裏存儲起來 其實是壹個很長的數字,在二進制裏 0.1可能是壹個無限不循環小數 所以我們會在壹定程度上截取下來 截取之後 就難免導致了實際值和我們存儲的值有很小很小的差異
而這裏輸出的d=49 就是壹個小於49並十分接近49的壹個數字
使用floor的時候 因為它確實比49小 所以就變成48了