Of course [that's](http://coliru.stacked-crooked.com/a/20f3dbaaf60d573e) not magic:

```
double in = 1.0 / 7.0;

cout.precision(50);
cout << in << endl;

```

but why can I see `0.14285714285714284921269268124888185411691665649414` (i.e. 51 digits)? 

Double precision has 53 bits for precision (thus should be 15.955=16 slots).

`cout` invent numbers? :P