C ++ Tutorial tentang Menangani Floats dan Ints

Int adalah bilangan bulat seperti 47 tanpa titik desimal. Anda tidak dapat memiliki 4,5 bayi atau loop 32,9 kali. Anda dapat memiliki $ 25,76 jika Anda menggunakan pelampung. Jadi saat Anda membuat program, Anda harus memutuskan jenis mana yang akan digunakan.

Inilah yang dilakukan beberapa bahasa scripting? Karena tidak efisien, mengapung mengambil lebih banyak memori dan umumnya lebih lambat daripada int. Juga, Anda tidak dapat dengan mudah membandingkan dua pelampung untuk melihat apakah keduanya sama seperti yang Anda dapat dengan int.

Untuk memanipulasi angka, Anda harus menyimpannya dalam memori. Karena nilainya dapat dengan mudah diubah, itu disebut variabel.

Itu penyusun yang membaca program Anda dan mengubahnya menjadi kode mesin perlu mengetahui jenisnya, mis. apakah itu int atau float, jadi sebelum program Anda menggunakan variabel, Anda harus menyatakan Itu.

Anda akan melihat bahwa variabel Counter diatur ke 0. Ini adalah inisialisasi opsional. Ini adalah praktik yang sangat baik untuk menginisialisasi variabel. Jika Anda tidak menginisialisasi dan menggunakannya dalam kode tanpa menetapkan nilai awal, variabel akan mulai dengan nilai acak yang dapat 'memecah' kode Anda. Nilainya akan menjadi apa pun yang ada dalam memori saat program dimuat.

instagram viewer

Berapa jumlah terbesar yang dapat disimpan oleh suatu int?. Yah, itu tergantung pada jenis CPU tetapi umumnya diterima sebagai 32 bit. Karena dapat menampung hampir sebanyak nilai negatif sebagai positif, kisaran nilai adalah +/- 2-32 ke 232 atau -2,147.483.648 hingga +2.147.483.647.

Ini untuk int yang ditandatangani, tetapi ada juga yang tidak ditandatangani int yang memegang nol atau positif. Ini memiliki kisaran 0 hingga 4.294.967.295. Ingatlah - int unsigned tidak perlu tanda (seperti + atau -1) di depannya karena mereka selalu positif atau 0.

Ada tipe int yang lebih pendek, secara kebetulan disebut int pendek yang menggunakan 16 bit (2 byte). Ini menyimpan angka dalam kisaran -32768 hingga +32767. Jika Anda menggunakan banyak int, Anda dapat menghemat memori dengan menggunakan int pendek. Tidak akan ada yang lebih cepat, meskipun ukurannya setengah. CPU 32 Bit mengambil nilai dari memori dalam blok 4 byte sekaligus. Yaitu. 32 bit (Oleh karena itu namanya- 32 Bit CPU!). Jadi mengambil 16 bit masih membutuhkan pengambilan 32 bit.

Ada lagi yang disebut 64 bit Panjang panjang dalam C. Beberapa kompiler C ++ sementara tidak mendukung tipe itu secara langsung menggunakan nama alternatif- mis. Borland dan Microsoft digunakan _int64. Ini memiliki kisaran -9223372036854775807 hingga 9223372036854775807 (ditandatangani) dan 0 hingga 18446744073709551615 (tidak bertanda tangan).

Kecuali jika Anda melakukan pemrograman ilmiah dengan angka yang sangat besar atau kecil, Anda hanya akan menggunakan ganda untuk presisi yang lebih besar. Mengapung bagus untuk akurasi 6 digit tetapi tawaran ganda 15.

Pertimbangkan nomor 567.8976523. Ini adalah nilai float yang valid. Tetapi jika kita mencetaknya dengan kode di bawah ini Anda dapat melihat kurangnya presisi yang muncul. Angka tersebut memiliki 10 digit tetapi disimpan dalam variabel float dengan presisi hanya enam digit.

Lihat Tentang Input dan Output untuk perincian tentang bagaimana cout bekerja, dan bagaimana menggunakan presisi. Contoh ini menetapkan presisi output hingga 8 digit. Sayangnya float hanya dapat menampung 6 dan beberapa kompiler akan mengeluarkan peringatan tentang mengubah ganda menjadi float. Saat dijalankan, ini akan dicetak 567.89764

Jika Anda mengubah presisi menjadi 15, cetakan akan mencetak menjadi 567.897644042969. Cukup berbeda! Sekarang pindahkan titik desimal dua ke kiri sehingga nilainya 5.678976523 dan jalankan kembali program. Kali ini output 5.67897653579712. Ini lebih akurat tetapi masih berbeda.

Jika Anda mengubah jenis nilai menjadi dua kali lipat dan presisi menjadi 10, nilai itu akan dicetak persis seperti yang didefinisikan. Sebagai aturan umum, float berguna untuk angka-angka kecil, bukan bilangan bulat tetapi dengan lebih dari 6 digit, Anda harus menggunakan ganda.

Menulis perangkat lunak komputer tidak akan banyak berguna jika Anda tidak dapat melakukan penambahan, pengurangan, dll. Inilah contoh 2.

Selain itu, Anda dapat melakukan pengurangan, perkalian dan pembagian. Cukup gunakan + untuk penambahan, - untuk pengurangan, * untuk perkalian dan / untuk pembagian.

Dengan float, Anda tidak memiliki kendali atas berapa banyak titik desimal yang ditampilkan kecuali jika Anda mengatur presisi seperti yang ditunjukkan sebelumnya.

Sekarang lebar, pelurusan, jumlah tempat desimal dan tanda dapat diatur oleh Cout objek dan iomanip termasuk fungsi file.

Ribuan pemisah sedikit lebih rumit. Mereka diatur dari lokal PC. Lokal berisi informasi yang relevan dengan negara Anda - seperti simbol mata uang dan titik desimal dan ribuan pemisah. Di Inggris dan Amerika Serikat, angka 100,98 menggunakan titik desimal. sebagai titik desimal sedangkan di beberapa negara Eropa itu koma jadi € 5,70 berarti harga 5 Euro dan 70 sen.

menciptakan objek mpunct yang merupakan referensi ke a moneypunct kelas templat. Ini memiliki informasi tentang lokal yang ditentukan - dalam kasus kami, the Thousand_sep () Metode mengembalikan karakter yang digunakan untuk pemisah ribuan.

Catatan Tampaknya ada perbedaan antara kompiler yang berbeda tentang bagaimana cout.imbue berperilaku. Di bawah Visual C ++ 2005 Express Edition, ini termasuk pemisah. Tetapi kode yang sama dengan Microsoft Visual C ++ 6.0 tidak!

Jika Anda menggunakan salah satu dari kedua mode pemformatan ini melalui cout.setf kemudian presisi () menetapkan jumlah tempat desimal setelah titik desimal (bukan jumlah digit keseluruhan) tetapi Anda kehilangan ribuan pemformatan. Juga membuntuti nol (seperti yang diaktifkan oleh ios_base:: showpoint ) menjadi diaktifkan secara otomatis tanpa perlu showpoint.

Anda akan mengharapkan sesuatu seperti nilai 11.0909090909. Bahkan, nilainya 11. Kenapa ini? karena ekspresi di sisi kanan (dikenal sebagai nilai) adalah integer / integer. Jadi ia menggunakan bilangan bulat aritmatika yang membuang bagian pecahan dan menetapkan 11 ke f. Mengubahnya menjadi

Di C, tidak ada tipe seperti a bool. Ekspresi dalam C didasarkan pada nol menjadi salah atau tidak nol menjadi benar. Dalam C ++ tipenya bool dapat mengambil nilai benar atau Salah. Nilai-nilai ini masih setara dengan 0 dan 1. Di suatu tempat di kompiler itu akan memiliki

Atau setidaknya bertindak seperti itu! Dua baris di bawah ini berlaku tanpa casting sehingga di belakang layar, bools secara implisit dikonversi menjadi int dan bahkan dapat ditambahkan atau dikurangi meskipun ini adalah praktik yang sangat buruk.

If akan tetap melakukan if karena variabel buruknya bukan nol tetapi itu kode yang buruk dan harus dihindari. Praktik yang baik adalah menggunakannya seperti yang dimaksudkan. jika (! v) valid C ++ tapi saya lebih suka yang lebih eksplisit jika (v! = 0). Namun, itu adalah masalah selera, bukan a harus dilakukan pengarahan.

itu lebih baik bagi kompiler untuk menangkap kesalahan pada waktu kompilasi daripada pengguna saat runtime

instagram story viewer