作者newsted5566 (NEWSTED5566(亂劣我文))
看板Python
標題[範例] 關於反三角函數的計算
時間Fri Jul 26 12:31:12 2013
各位大大以下是我寫的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
1F:→ ken1325:我執行你的程式碼,是回傳30。 07/26 12:40
2F:→ newsted5566:我的電腦是mac 07/26 13:33
3F:→ howardxu:// 改成 / 就對了 為什麼要用//? 07/26 14:31
4F:→ darkgerm:電腦計算誤差,無解,小數轉整數的話一定要用 round() 07/26 14:42
5F:→ darkgerm:round() 才會做四捨五入,用 int() 或 // 除出來都是 07/26 14:43
6F:→ darkgerm:無條件捨去,即使是 29.99999999 也會變 29 07/26 14:44
7F:→ darkgerm:所以用 round 就是 c = int(round(b*180 / d)) 07/26 14:45
8F:→ buganini://是python3的東西 07/26 16:55
9F:→ buganini:不對,應該說int/int在python3不會無條件捨去 07/26 16:57
10F:→ elleryq:要不要乾脆用 decimal module? 07/27 04:47