2 回答
TA貢獻1798條經驗 獲得超7個贊
該函數期望值以弧度為單位,而不是度數
從文檔來看,
math.sin(x)
mathusing或numpy函數之間的區別在于,它將numpy在arraynp.deg2rad([45, 90])作品math.radians([45, 90])結果是TypeError
如果您使用單個值,請使用該
math函數,否則使用numpy.Wolfram Research鏈接到 pi 的限制表示。
import numpy as np
import math
# convert from degrees to radians
x = np.deg2rad(180/1000000)
# make calculation
v = math.sin(x)
z = v * 1000000
# print(z)
3.1415926535846257
math.sin這里并沒有真正做任何事情。對于小角度,
sin(x) ≈ x,所以sin(π/1000000) × 1000000 ≈ π
x
[out]:
3.1415926535897933e-06
v
[out]:
3.1415926535846256e-06
TA貢獻1828條經驗 獲得超13個贊
發生這種情況是因為math.sin(x)期望 x 以弧度為單位:
math.sin(x) ????Return?the?sine?of?x?radians.
為了解決這個問題,您需要首先將 x 轉換為弧度,如下所示:
test?=?math.sin(math.radians(180)/1000000)?*?1000000
輸出:
3.1415926535846257
我不建議使用 NumPy,因為這個問題沒有必要。math.radians()足夠了。
添加回答
舉報
