2 回答

TA貢獻1798條經驗 獲得超7個贊
該函數期望值以弧度為單位,而不是度數
從文檔來看,
math.sin(x)
math
using或numpy
函數之間的區別在于,它將numpy
在array
np.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()
足夠了。
添加回答
舉報