티스토리 뷰
decimal.getcontext().prec = 50
decimal.getcontext().rounding = decimal.ROUND_HALF_UP
if value < decimal.Decimal(1e-9) and value > decimal.Decimal(-1e-9):
pi = Decimal('3.14159265358979323846264338327950288419716939937510')
def sin(x):
x = x % (2 * pi)
getcontext().prec += 2
i, lasts, s, fact, num, sign = 1, 0, x, 1, x, 1
while s != lasts:
lasts = s
i += 2
fact *= i * (i - 1)
num *= x * x
sign *= -1
s += num / fact * sign
getcontext().prec -= 2
return +s
'PL > Python' 카테고리의 다른 글
[Python] max(list)함수가 list가 비어있어도 터지지 않게 하는 default (0) | 2021.11.27 |
---|---|
[Python] collections.deque - 큐 시간초과 방지하기, 덱 (0) | 2021.11.22 |
[Python] bin, hex 변환 (0) | 2021.11.12 |
[Python] bound/unbound 차이 (0) | 2021.11.07 |
[Python] iter(), next() (0) | 2021.10.07 |