<< I took a look in Stroustrup's C++ Programming Language, and according to Section 21.4.3,
<<
Note that floating-point values are rounded rather than just truncated and that precision() doesn't affect integer output.
>>
Maybe you're seeing a compiler bug. >>
Damn that seems to be it...