1. 程式人生 > >C++ 的 printf格式控制輸出

C++ 的 printf格式控制輸出

測試平臺:gcc (Ubuntu 4.8.5-4ubuntu8~16.04.1) 4.8.5

  • %f,預設輸出六位小數(對float和double型別都是預設輸出六位小數),有效數字只是前6位(包括整數部分和小數部分)
  • %lf,預設輸出六位小數(對float和double型別都是預設輸出六位小數),但是通過%.16lf使其輸出為16位小數,但是有效數字只是前16位(包括整數部分和小數部分)
double doub = 1.01234567890123456789;
printf("%lf\n", doub);    //輸出:1.012346。只有1.01234是有效的
printf("%.16lf\n"
, doub); //輸出:1.0123456789012346。 只有1.012345678901234是有效的 printf("%f\n", doub); //輸出:1.012346。只有1.01234是有效的。 printf("%.16f\n", doub); //輸出:1.0123456789012346。

通過實驗來看,好像在gcc (Ubuntu 4.8.5-4ubuntu8~16.04.1) 4.8.5下,%f和%lf的效果是一樣的。
既然是一樣的,推薦使用%f吧,因為在一些IDE上面(比如說codebloacks,其使用MinGW編譯器),%lf輸出是錯誤的
-_-!!,