Since the sin function is given by an alternating Taylor series, the approximation error made when truncating the series is determined by its final term. The error is less than that of the final term. A pretty efficient algorithm in Python to calculate sin follows.
def sin(x):
epsilon = 0.1e-16
sinus = 0.0
sign = 1
term = x
n = 1
while term > epsilon:
sinus += sign*term
sign = -sign
term *= x * x / (n+1) / (n+2)
n += 2
return sinus
About one term is needed per digit of accuracy. Note that the angle $x$ is given in terms of the fraction of circumference of a circle that subtends it, in English that means that since $360^\circ = 2\pi$ is a full circle, then $45^\circ = \pi/2$ radians.
Take care when using this code since it will not work as it stands when $term < 0$, so keep $x$ positive. It works well when $0 \leq x \leq 2\pi$.
Adding the following four lines directly after def sin(x): makes the code more robust.
while x < 0:
x += 2*pi
while x > 2*pi:
x -= 2*pi