C++ weird behaviour
<p>Im doing some C++, and I've stumbled across something thats behaving very odd.  Im hoping someone could explain to me why this is happening.</p>

<p>I've defined PI as follows.</p>

<pre><code>#define PI 4 * atan(1.0)
</code></pre>

<p>However, when I do the following, I get a very weird number (35.34291....)</p>

<pre><code>double first = 180.0/PI; 
</code></pre>

<p>When I hardcode pi (3.141592654) instead of PI, it gives me 57.2957</p>

<p>Why is this happening exactly?</p>

<p>Thanks.</p>
