Interesting. I just realized, double isn't as precise as I thought It only stores 16 decimal places of PI anyways, while I know 30+.
But strangely, the last decimal place is rounded down incorrectly... it stores
3.1415926535897931 instead of
3.1415926535897932, where the real number is
3.14159265358979323.
Regardless of whether it is rounded or truncated, shouldn't the last digit be 2 instead of 1? (acos(-1.) gives the same result)