Calculate the sine of a float (in radians)… …without using any operator/function besides addition (+), subtraction (-), multiplication (*), division (/), modulo (%), exponent/power pow() or any of the standard C bitwise operators (&lt;&lt;, &gt;&gt;, ~, &amp;, |, ^) or unary operators (—, ++) or assignment/comparison operators (=, ==).

If these symbols represent a different operation in your chosen language, go with the spirit of the question and don't use them.

Rules:


You cannot use any mathematical functions your language might offer (Mathematica, looking at you.)
You cannot use any operator besides the bitwise operators or the arithmetic operators listed above.
Your output should be a float and be correct to at least 2 decimal places when truncated/rounded.
You can use constants your language's standard libraries might provide.
You can hardcode the values, but your program should work correctly for all floats (up to 2 decimal places) between 0 and 2π;


This is code-golf, so the shortest answer wins.

Example:

Input: 3.141592653 / 2
Output: 1.00xxxxxx…


Please also post an ungolfed version of your code.
Python 83 69

Based on Bhaskara I's sine approximation formula

Implementation

def f(x):p=3.14;x,s=x%p,(4,-4,4)[int(x/p)];return s/(12.34/x/(p-x)-1)


Ungolfed

def apxsine(radian):
    pi = 3.14 # Approximate to 2 decimal places
    sign = (4,-4,4)[radian % pi]
    return sign / (12.34/radian/(pi - radian) - 1))


Deduction



Demo

&gt;&gt;&gt; from math import pi, sin
&gt;&gt;&gt; any(round(abs(f(e) - sin(e)), 2) for e in (e/180.*pi for e in range(0,360)))
False


JUst realized that if I would have opted for Euler's formula route, the code would be shorter (49 characters). But then it uses Complex numbers and am not sure if the call to the real method would be valid in the current question context.

f=lambda x:((2.72**(x*1j)-2.72**(-x*1j))/2j).real