Why the printf below prints 123456.984 instead of 123456.988?

```
#include <stdio.h>
int main()
{
    printf("%.3f\n", 123456.987654);
    return 0;
}

```

Edit: i did a mistake, the right printf is:

```
printf("%.3f\n", 123456.987654f);

```