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?
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/. ..
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
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.cin dan cout ialah kod c++, printf dan scanf ialah kod c. %f dalam bahasa C mengeluarkan data titik terapung dalam bentuk perpuluhan.
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