Rumah > Soal Jawab > teks badan
Seperti yang ditunjukkan dalam kod berikut, terdapat cout
和printf
perbezaan semasa mengeluarkan data.
double ans = 0, max = 135.349, min = 3.88633;
ans = max * 2086458231 / min;
cout << ans << endl;
printf("%lf", ans);
Output
7.26652e+010
72665192664.000000
Kenapa ada perbezaan sebegitu?
習慣沉默2017-05-16 13:26:08
Masalah keluaran terformat c++, format keluaran lalai cout bagi nombor titik terapung bukan %lf Jika anda ingin menetapkan format output, anda boleh merujuk pautan berikut
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;
}
巴扎黑2017-05-16 13:26:08
cout ialah sintaks C++, printf ialah bahasa C, tetapi C dikekalkan Dalam cstdio, hasilnya berbeza kerana cout lalai untuk mengekalkan N bit + kaedah pengiraan saintifik untuk nombor titik terapung yang terlalu lama, tetapi cout juga boleh. digunakan Gunakan parameter untuk memformat output, seperti
cout << setiosflags(ios::fixed) <<< tidak memerlukan notasi saintifik Anda boleh merujuk manual untuk lebih banyak parameter , sangat Mudah
我想大声告诉你2017-05-16 13:26:08
cout
Bit sah keluaran aliran lalai ialah 6 digit Jika melebihi 6 digit, ia akan diformatkan secara automatik Jika panjang integer melebihi 6 digit, ia akan diformatkan secara automatik ke dalam notasi saintifik.
淡淡烟草味2017-05-16 13:26:08
cin dan cout ialah kod c++, printf dan scanf ialah kod c. %f dalam bahasa C mengeluarkan data titik terapung dalam bentuk perpuluhan.
漂亮男人2017-05-16 13:26:08
cout ialah kaedah keluaran dalam perpustakaan standard iostream c++, manakala printf dikekalkan oleh bahasa c Output lalai yang diformatkan bagi cout adalah berbeza daripada %lf