C++ 的 printf格式控制輸出
阿新 • • 發佈:2019-01-29
測試平臺: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輸出是錯誤的
-_-!!,