変数とデータ型について勉強してるんですが

#include <stdio.h>
#include <float.h>

int main(void)

{
       double pai=3.14159265358979;

       printf("円周率は%fです\n",pai);

       fflush(stdin);
       getchar();
       return 0;
}

とした場合、表示が3.141593になるのは何故でしょうか?