Nombor sebenar
terapung r = 5.0
Nilai 5.0 ialah nombor yang diwakili sebagai pecahan perpuluhan (mempunyai integer dan bahagian pecahan). Dalam sains komputer, nombor sedemikian dipanggil nombor nyata.
Nombor nyata ialah nombor yang mempunyai bahagian integer dan bahagian pecahan. Bahagian integer dan pecahan dipisahkan antara satu sama lain dengan titik, bukan koma seperti dalam matematik.
Walaupun bahagian pecahan nombor itu sama dengan sifar, seperti dalam pembolehubah r dalam contoh, pengkompil masih akan mencipta pembolehubah sebenar dalam ingatan. Intinya, seolah-olah, isyarat untuk penterjemah bahawa adalah perlu untuk mencipta pembolehubah sebenar.
Nombor yang sangat besar dan sangat kecil ditulis menggunakan "titik terapung" (dalam apa yang dipanggil format saintifik).
Dalam format saintifik, nombor diwakili sebagai mantissa(bahagian penting nombor) dan eksponen. Apabila ditulis, mantissa dan eksponen dipisahkan antara satu sama lain dengan huruf e (menunjukkan 10 pada tahap tertentu).
Contohnya, anda boleh menyimpan nilai cas elektron dalam pembolehubah
( \(1,60217662 \times 10^{-19}\) Kl), ditulis sebagai
terapungEl= 1.60217662e-19
// untuk susunan positif, tanda + boleh diabaikan
Hampir semua nombor nyata tidak boleh disimpan dalam memori komputer dengan ketepatan yang sempurna, kerana bilangan bit yang terhad diperuntukkan untuk penyimpanannya. Oleh itu, apabila mengira dengan nombor nyata, ralat yang berkaitan dengan ketidaktepatan perwakilan terkumpul. Lebih-lebih lagi, semakin sedikit ruang yang diperuntukkan, semakin besar ralat ini. Untuk mengurangkan ralat dalam C++, jenis double digunakan, yang menyimpan nombor nyata dengan ketepatan berganda dalam ingatan (menduduki lapan bait dalam ingatan, manakala jenis float - 4 bait).
|
Masuk
Anda boleh memasukkan beberapa pembolehubah sebenar daripada aliran input dan menulisnya kepada pembolehubah dengan cara standard:
apungkan x, y;
cin>> x>> y;
Nombor pertama masuk ke dalam pembolehubah x , yang kedua - ke dalam y .
Kesimpulan
Apabila memaparkan nombor nyata, 6 tempat perpuluhan dipaparkan secara lalai, dengan format saintifik atau titik tetap dipilih secara automatik.
Format output boleh disesuaikan. Untuk ini, perpustakaan tambahan iomanip digunakan - manipulator yang mengawal output.
Untuk output dalam format titik tetap, manipulator tetap digunakan, untuk format saintifik - saintifik . Kemudian anda perlu menentukan bilangan digit dalam bahagian pecahan menggunakan manipulator setprecision() . Menggunakan setw() manipulator, anda boleh menetapkan jumlah bilangan jawatan yang diperuntukkan untuk output nombor.
Contoh
apungan x = 1.0/6;
cout << tetap << setprecision(9); // ditetapkan untuk memaparkan 9 digit dalam bahagian pecahan
cout << setw(12) << x;
Skrin akan dipaparkan
_0.166666672
Semua arahan boleh ditulis dalam satu baris:
cout << tetap << setprecision(9) << setw(12) << x;
|
Operasi dengan nombor nyata. modul cmath
Apabila bekerja dengan nombor nyata, kita boleh menggunakan modul matematik yang sudah biasa, yang mengandungi sejumlah besar fungsi terbina dalam.
Apabila menyelesaikan masalah, selalunya perlu untuk membundarkan nombor nyata kepada nilai integer terdekat. Terdapat dua fungsi untuk ini.
Perlu diingat!
1. dengan penukaran jenis eksplisit ( float x=1.5; int y = int(x)) - bahagian pecahan nombor nyata dipotong ( y = 1) ;
2. fungsi lantai(x) - mengembalikan integer terbesar kurang daripada atau sama dengan x (bundarkan ke bawah);
3. fungsi ceil(x) - mengembalikan integer terkecil lebih besar daripada atau sama dengan x (bundarkan ke atas).
Berikut ialah fungsi paling berguna yang terkandung dalam modul cmath .
Fungsi |
Penerangan |
Membundar |
pusingan(x)
C++11
| Membundarkan nombor kepada integer terdekat. Jika bahagian pecahan nombor itu ialah 0.5, maka nombor itu dibundarkan kepada nombor bulat terdekat. |
trunc(x)
C++11
| Buang bahagian pecahan |
lantai(x) |
Membundarkan nombor ke bawah ("lantai"), dengan itu lantai(1.5) == 1, lantai(-1.5) ==  ; -2 |
ceil(x) |
Membundarkan nombor ke atas ("siling"), manakala siling(1.5) == 2, siling(-1.5) ==  ; -1 |
abs(x) |
Modulo (nilai mutlak). |
fabs(x) |
Modulo nombor nyata |
Akar, logaritma |
sqrt(x) |
Akar kuasa dua. Penggunaan: y = sqrt(x) |
pow(x, y) |
Meningkatkan x kepada kuasa y. \(x^y\) |
log(x) |
Logaritma semula jadi. |
exp(x) |
Asas logaritma asli e = 2.71828... |
Trigonometri |
sin(x) |
Sinus sudut yang dinyatakan dalam radian |
cos(x) |
Kosinus sudut yang dinyatakan dalam radian |
tan(x) |
Tangen bagi sudut yang dinyatakan dalam radian |
asin(x) |
Arcsine, mengembalikan nilai dalam radian |
acos(x) |
Kosinus arka, mengembalikan nilai dalam radian |
atan(x) |
Arctangent, mengembalikan nilai dalam radian |
atan2(y, x) |
Sudut kutub (dalam radian) bagi titik (x, y). |
|