2 回答

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超7個(gè)贊
該函數(shù)期望值以弧度為單位,而不是度數(shù)
從文檔來(lái)看,
math.sin(x)
math
using或numpy
函數(shù)之間的區(qū)別在于,它將numpy
在array
np.deg2rad([45, 90])
作品math.radians([45, 90])
結(jié)果是TypeError
如果您使用單個(gè)值,請(qǐng)使用該
math
函數(shù),否則使用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
這里并沒(méi)有真正做任何事情。對(duì)于小角度,
sin(x) ≈ x
,所以sin(π/1000000) × 1000000 ≈ π
x
[out]:
3.1415926535897933e-06
v
[out]:
3.1415926535846256e-06

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊
發(fā)生這種情況是因?yàn)?code>math.sin(x)期望 x 以弧度為單位:
math.sin(x) ????Return?the?sine?of?x?radians.
為了解決這個(gè)問(wèn)題,您需要首先將 x 轉(zhuǎn)換為弧度,如下所示:
test?=?math.sin(math.radians(180)/1000000)?*?1000000
輸出:
3.1415926535846257
我不建議使用 NumPy,因?yàn)檫@個(gè)問(wèn)題沒(méi)有必要。math.radians()
足夠了。
添加回答
舉報(bào)