Số thực

Trong lập trình, tất cả các số trước hết được phân biệt thành số nguyên (số nguyên) và số phân số (số float ).

Để xác định loại biến của bạn là gì, Python có hàm type() tích hợp sẵn: tên = "Ivan" in(loại(tên))  #màn hình sẽ hiển thị <lớp 'str'> n=5 in(loại(n))  # <lớp 'int'> r=5,0 in(loại(r))  # <lớp 'nổi'>
Giá trị 5.0 là một số được biểu thị dưới dạng số thập phân.  Trong lập trình, tất cả các số phân số là số có dấu thập phân trong ký hiệu của chúng. Những số như vậy được gọi là số thực.
 
Số thực là số có chứa dấu thập phân. Phần nguyên và phần phân số được phân tách với nhau bằng dấu chấm, không phải dấu phẩy như trong toán học.

Ví dụ: số \(1 \over 2\)\(\sqrt 2\)   là những số thực. int không đủ để lưu trữ các số đó. 
Python sử dụng kiểu dữ liệu  float.
để biểu diễn các số thự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ớ. Vì có một dấu thập phân trong ký hiệu của số!. Có thể nói, dấu thập phân 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 thị dưới dạng phần định trị(phần quan trọng của số) 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 ( \(1.60217662 \times 10^{-19}\) C) trong một biến, viết ở dạng sau  ; El = 1.60217662e-19
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ố lượng bit hạn chế được phân bổ để lưu trữ chúng.
 
Do đó, khi tính toán với số thực, sai số do biểu diễn không chính xác sẽ tích tụ lại. Hơn nữa, dung lượng được phân bổ càng ít thì lỗi này càng lớn.

 

Nhập

Để nhập một số thực bằng hàm input(), cần phải chuyển đổi chuỗi ký tự, là kết quả của hàm input(), thành một số thực bằng hàm >float(): x = float(đầu vào()) Nếu bạn cần nhập nhiều giá trị từ một dòng cùng một lúc, thì chúng tôi sử dụng phương pháp tương tự như đối với số nguyên: x, y = map(float, input().split())

 

Đầu ra

Khi hiển thị số thực, 16 chữ số thập phân được hiển thị theo mặc định. Định dạng này không phải lúc nào cũng cần thiết. Nếu bạn cần rút ngắn định dạng đầu ra, hãy sử dụng đầu ra có định dạng hoặc Chuỗi F.


Định dạng đầu ra
Để làm điều này, hãy áp dụng phương thức format() cho chuỗi mà chúng ta muốn xuất ra. Và bên trong các định dạng dòng được viết trong dấu ngoặc nhọn sau dấu hai chấm. Dấu ngoặc đơn của hàm format() cho biết tên của các biến (hoặc hằng số), các giá trị của chúng sẽ được thay thế thành chuỗi thay vì dấu ngoặc nhọn ở định dạng đã chỉ định. Số lượng biến phải khớp với số lượng dấu ngoặc nhọn. Phương pháp này hoạt động trong Python bắt đầu từ phiên bản 3.
 
Ví dụ
<đầu>
 


Chuỗi F 
Một cách khác để hiển thị chuỗi đã định dạng là sử dụng f-strings (f-string). Phương pháp này có sẵn trong Python bắt đầu từ phiên bản 3.6. in(f"{x:f}") in(f"{x:.3f}") in(f"{x:12.4e}") F-string là một chuỗi ký tự đại diện, bắt đầu bằng (hoặc F). Mỗi khi muốn chèn giá trị của một biến nào đó vào một chuỗi, chúng ta cần thêm   tên biến được đặt trong dấu ngoặc nhọn {}. Bên trong dấu ngoặc nhọn, bạn có thể chỉ định một phương thức định dạng tương tự như phương thức fomat().


Ngoài phương thức format()F-strings, bạn có thể sử dụng các cách khác để định dạng đầu ra. Chúng tôi nhận được kết quả tương tự bằng cách viết các câu lệnh đầu ra như sau: in("%f" % (x)) in("%.3f" % (x)) in("%12.4e" % (x)) Phương pháp định dạng này bắt chước hàm  printf() của ngôn ngữ C. Phương pháp này được coi là lỗi thời, nhưng trong một số trường hợp, nó thuận tiện hơn. Ngoài ra, phương pháp này là phương pháp duy nhất (trong số những phương pháp được đề cập ở đây) hoạt động trong Python phiên bản 2.5 trở xuống.

  Giải thích Đầu ra màn hình
x = 1/6    
in("{:f}".format(x)) định dạng :f xuất ra 6 chữ số theo mặc định  ở phần phân số 0.166667
in("{:.3f}".format(x)) :.3 có nghĩa là xuất 3 ký tự sau dấu chấm 0,167
in("{:12.4e}".format(x)) :12.4 - số đầu tiên (12) chỉ định  tổng số vị trí để hiển thị số (bao gồm cả dấu chấm);
số thứ hai (4) - số chữ số ở phần phân số;
format e - hiển thị số ở định dạng khoa học.
1.6667e-01
Chuyển đổi số thực thành số nguyê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.

Phải nhớ!
  1. Hàm int(x) - loại bỏ phần phân số của số thực x.
  2. Hàm round(x) - làm tròn số thực x thành 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ố chẵn gần nhất).
 
Ví dụ
in(int(20.12345)) #20 in(vòng(2.5)) # 2 in(vòng(3.5)) # 4 in(vòng(-2,5)) # -2 in(vòng(-3,5)) # -4