float r = 5.0;

Giá trị 5,0 là một số được biểu diễn dưới dạng phân số thập phân (có phần nguyên và phần phân số). Trong khoa học máy tính, những con số như vậy được gọi là thực.
Số thực là số có phần nguyên và phần phân số. Phần nguyên và phần phân số ođược ngăn cách nhau dấu phẩy.
Ngay cả khi phần phân số của số bằng 0, như trong biến r  trong ví dụ, trình dịch vẫn sẽ tạo một biến thực trong bộ nhớ. Dấu chấm đóng vai trò báo 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" (ở định dạng được gọi là khoa học).  
Ở định dạng khoa học, một số được biểu thị dưới dạng dấu trị(phần quan trọng của số) số mũ. Khi viết, phần định trị và số mũ cách nhau bằng chữ 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 ( \(1.60217662 \times 10^{-19}\) C) trong một biến, viết dưới dạng sau:
float El = 1,60217662e-19 // đối với lệnh 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#, họ sử dụng loại double, lưu trữ một số thực với độ chính xác gấp đôi trong bộ nhớ (chiếm tám byte trong bộ nhớ, trong khi loại float > - 4 byte).