Perbezaan antara cout dan printf dalam C++
PHPz
PHPz 2017-05-16 13:24:08
0
5
1683

Seperti yang ditunjukkan dalam kod berikut, terdapat coutprintfperbezaan 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?

PHPz
PHPz

学习是最好的投资!

membalas semua(5)
習慣沉默

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;
}
巴扎黑

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

我想大声告诉你

coutBit 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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan