I'm programming a microcontroller atmega168 (8 bit).

I want to do something like:

```
float A =  cos(- (2/3) * M_PI);

```

Including of course math.h (#define M\_PI 3.14159265358979323846)

As result, instead of having -0.5, i get 1.

I check the result using a serial communication to my pc that i'm sure that works also for float numbers because if i set 

```
A= -0.50;

```

I receive the correct result.

PS. I cannot use double...also because i don't see the reason of doing so

Help me please!