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) == 2siling(-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).