84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
如一下程式碼所示,在輸出資料時候cout和printf區別。
cout
printf
double ans = 0, max = 135.349, min = 3.88633; ans = max * 2086458231 / min; cout << ans << endl; printf("%lf", ans);
輸出
7.26652e+010 72665192664.000000
為什麼會有這樣的不同呢?
学习是最好的投资!
c++的格式化輸出問題,cout預設輸出浮點數的格式不是%lf,如果要設定輸出的格式,可以參考下面的連結http://en.cppreference.com/w/...
#include <iostream> int main() { double ans = 0, max = 135.349, min = 3.88633; ans = max * 2086458231 / min; std::cout << ans << std::endl; // 7.2665e+10 std::cout.setf(std::ios::scientific); std::cout << ans << std::endl; // 7.266497e+10 std::cout.unsetf(std::ios::scientific); std::cout.setf(std::ios::fixed); std::cout << ans << std::endl; // 72664965432.070602 printf("%lg\n", ans); // 7.2665e+10 printf("%lf\n", ans); // 72664965432.070602 return 0; }
cout是C++的語法,printf是C語言了,不過C保留了,在cstdio裡面結果不同時因為cout對超長的浮點數默認採用了保留N位+科學計算法的形式,不過cout也是可以用參數格式化輸出的,例如cout 就不用科學計數法了,更多的參數你可以查閱手冊printf也可以格式化,非常方便
cout預設的流輸出有效位是6位,如果超過6位會自動格式化,整數長度超過6位會自動格式化為科學計數法。
cin和cout是c++的程式碼,printf和scanf是c的程式碼。 %f在c語言中是以十進制小數形式輸出浮點型資料。
cout是c++ iostream標準函式庫裡的輸出方式,而printf是c語言保留下來的,cout預設的格式化輸出和%lf不一樣
c++的格式化輸出問題,cout預設輸出浮點數的格式不是%lf,如果要設定輸出的格式,可以參考下面的連結
http://en.cppreference.com/w/...
cout是C++的語法,printf是C語言了,不過C保留了,在cstdio裡面
結果不同時因為cout對超長的浮點數默認採用了保留N位+科學計算法的形式,不過cout也是可以用參數格式化輸出的,例如
cout 就不用科學計數法了,更多的參數你可以查閱手冊
printf也可以格式化,非常方便
cout
預設的流輸出有效位是6位,如果超過6位會自動格式化,整數長度超過6位會自動格式化為科學計數法。cin和cout是c++的程式碼,printf和scanf是c的程式碼。 %f在c語言中是以十進制小數形式輸出浮點型資料。
cout是c++ iostream標準函式庫裡的輸出方式,而printf是c語言保留下來的,cout預設的格式化輸出和%lf不一樣