Rumah  >  Soal Jawab  >  teks badan

Perbezaan antara cout dan printf dalam C++

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?

PHPzPHPz2684 hari yang lalu1592

membalas semua(5)saya akan balas

  • 習慣沉默

    習慣沉默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;
    }

    balas
    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

    balas
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-16 13:26:08

    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.

    balas
    0
  • 淡淡烟草味

    淡淡烟草味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.

    balas
    0
  • 漂亮男人

    漂亮男人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

    balas
    0
  • Batalbalas