看板 Python 關於我們 聯絡資訊
各位大大以下是我寫的code import math print "HI!! WELCOME" name = raw_input('What is your rate?\n') print "Wait for it!!!!! It's gonna be..." a = float(name) b = math.asin(a) d = math.pi c = b * 180 //d print c 但是我在執行時,輸入0.5 理應他回傳的值應該是30 但是他卻回傳29... 請問這有辦法解嗎?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.95.170
ken1325:我執行你的程式碼,是回傳30。 07/26 12:40
newsted5566:我的電腦是mac 07/26 13:33
howardxu:// 改成 / 就對了 為什麼要用//? 07/26 14:31
darkgerm:電腦計算誤差,無解,小數轉整數的話一定要用 round() 07/26 14:42
darkgerm:round() 才會做四捨五入,用 int() 或 // 除出來都是 07/26 14:43
darkgerm:無條件捨去,即使是 29.99999999 也會變 29 07/26 14:44
darkgerm:所以用 round 就是 c = int(round(b*180 / d)) 07/26 14:45
buganini://是python3的東西 07/26 16:55
buganini:不對,應該說int/int在python3不會無條件捨去 07/26 16:57
elleryq:要不要乾脆用 decimal module? 07/27 04:47