Số thực

phao r = 5,0 Giá trị 5.0 là một số được biểu thị dưới dạng phân số thập phân (có phần nguyên và phần thập phân). Trong khoa học máy tính, những số như vậy được gọi là số thực.
 
Số thực là số có một phần nguyên và một phần phân số. Phần nguyên và phần phân số được ngăn cách với nhau bằng dấu chấm chứ không phải dấu phẩy như trong toán học.

Ngay cả khi phần phân số của số bằng 0, như trong biến r trong ví dụ, trình biên dịch vẫn sẽ tạo một biến thực trong bộ nhớ. Có thể nói, điểm này là một tín hiệu cho người dịch rằng cần phải tạo một biến thực. 

Số rất lớn và rất nhỏ  được viết bằng cách sử dụng "dấu chấm động" (ở cái gọi là định dạng khoa học).  
Ở định dạng khoa học, một số được biểu diễn dưới dạng mantissa(phần quan trọng của số) và số mũ. Khi được viết, phần định trị và số mũ được phân tách với nhau bằng chữ cái e (biểu thị 10 ở một mức độ nào đó). 
Ví dụ: bạn có thể lưu trữ giá trị điện tích của một electron trong một biến 
\(1,60217662 \times 10^{-19}\) Kl), viết là   phaoEl= 1.60217662e-19 // đối với thứ tự dương, có thể bỏ dấu +
Hầu như tất cả các số thực không thể được lưu trữ trong bộ nhớ máy tính với độ chính xác hoàn hảo, vì một số bit hạn chế được phân bổ để lưu trữ chúng. Do đó, khi tính toán với các số thực, các lỗi liên quan đến tính không chính xác của biểu diễn sẽ tích lũy. Hơn nữa, càng ít không gian được phân bổ, lỗi này sẽ càng lớn. Để giảm lỗi trong C++, loại double được sử dụng, lưu trữ một số thực với độ chính xác gấp đôi trong bộ nhớ (chiếm 8 byte trong bộ nhớ, trong khi loại float - 4 byte).

Nhập

Bạn có thể nhập một số biến thực từ luồng đầu vào và ghi chúng vào các biến theo cách tiêu chuẩn: thả nổi x, y; cin>> x>> y; Số đầu tiên đi vào biến x, số thứ hai - vào y.



Kết luận

Khi hiển thị số thực, 6 chữ số thập phân được hiển thị theo mặc định, với định dạng khoa học hoặc điểm cố định được chọn tự động.
Định dạng đầu ra có thể được tùy chỉnh. Đối với điều này, một thư viện bổ sung iomanip được sử dụng - các trình điều khiển kiểm soát đầu ra.
Đối với đầu ra ở định dạng điểm cố định, trình thao tác  fixed được sử dụng cho định dạng khoa học - scientific. Sau đó, bạn cần xác định số chữ số trong phần phân số bằng cách sử dụng trình thao tác  setprecision(). Sử dụng setw() trình thao tác, bạn có thể đặt tổng số vị trí được phân bổ cho đầu ra số.

 
Ví dụ
thả nổi x = 1.0/6; cout << đã sửa << setprecision(9); // thiết lập để hiển thị 9 chữ số trong phần phân số cout << setw(12) << x;
Màn hình sẽ hiển thị _0.166666672
Tất cả các lệnh có thể được viết trong một dòng: cout << đã sửa << setprecision(9) << setw(12) << x;

Các phép toán với số thực. mô-đun cmath

Khi làm việc với số thực, chúng ta có thể sử dụng mô-đun math vốn đã quen thuộc, mô-đun này chứa một số lượng lớn các hàm tích hợp sẵn. 
Khi giải toán thường phải làm tròn số thực đến giá trị nguyên gần nhất. Có hai chức năng cho việc này.

Cần ghi nhớ!
1. với chuyển đổi loại rõ ràng ( float x=1.5; int y = int(x))  -  phần phân số của một số thực bị cắt (y = 1); 
2. hàm sàn(x) -  trả về số nguyên lớn nhất nhỏ hơn hoặc bằng x (làm tròn xuống);
3. hàm ceil(x) -  trả về số nguyên nhỏ nhất lớn hơn hoặc bằng x (làm tròn lên).

Dưới đây là các chức năng hữu ích nhất có trong mô-đun cmath.

Chức năng Mô tả
Làm tròn
vòng(x)
C++11
Làm tròn một số tới số nguyên gần nhất. Nếu phần phân số của số là 0,5 thì số đó được làm tròn thành số nguyên gần nhất. 
trunc(x)
C++11
Bỏ qua phần phân số
sàn(x) Làm tròn một số xuống ("sàn"), do đó sàn(1.5) == 1sàn(-1.5) ==  ; -2
trần(x) Làm tròn một số lên ("trần"), trong khi ceil(1.5) == 2ceil(-1.5) ==  ; -1
abs(x) Modulo (giá trị tuyệt đối).
fabs(x) Modulo số thực
Căn, logarit
sqrt(x) Căn bậc hai. Cách sử dụng: y = sqrt(x)
pow(x, y) Tăng x lên lũy thừa y. \(x^y\)
log(x) Logarit tự nhiên. 
exp(x) Cơ số của logarit tự nhiên e = 2,71828...
Lượng giác
sin(x) Sine của một góc được xác định bằng radian
cos(x) Cosine của một góc được chỉ định theo đơn vị radian
tan(x) Tang của một góc được chỉ định theo đơn vị radian
asin(x) Arcsine, trả về giá trị theo đơn vị radian
acos(x) Arc cosin, trả về giá trị theo đơn vị radian
atan(x) Arctangent, trả về giá trị theo đơn vị radian
atan2(y, x) Góc cực (tính bằng radian) của điểm (x, y).