
Chào các bạn Gen Z, lại là tôi, Professor Creyt đây. Hôm nay, chúng ta sẽ "lướt" qua một khái niệm mà nhiều bạn thấy "lơ lửng" nhưng lại cực kỳ quan trọng: float trong Python.
Nếu int (số nguyên) là những viên gạch vuông vức, đếm từng cái một như số lượng followers hay số lượt like, thì float chính là xi măng, là nước, là những thứ không thể đếm chẵn mà phải "đong đo" tỉ mỉ. Nói cách khác, float là kiểu dữ liệu dùng để biểu diễn các số có phần thập phân – những con số "lẻ" mà cuộc sống hiện đại của chúng ta tràn ngập.
Float là gì và để làm gì?
Về mặt học thuật, float (viết tắt của 'floating-point number') là một kiểu dữ liệu trong Python (và hầu hết các ngôn ngữ lập trình khác) dùng để lưu trữ các số thực (real numbers). Tức là, nó có thể có phần thập phân, ví dụ: 3.14, -0.5, 99.99.
Nó khác với int (integer) chỉ lưu trữ số nguyên không có phần thập phân (ví dụ: 1, 100, -5). Mục đích chính của float là để xử lý các phép tính yêu cầu độ chính xác cao hơn, như tính toán tiền tệ, đo lường khoa học, tọa độ địa lý, hoặc bất kỳ đại lượng nào không thể biểu diễn bằng số nguyên.
Code Ví Dụ Minh Họa Rõ Ràng
Để dễ hình dung hơn, chúng ta hãy cùng "thực chiến" với vài dòng code Python nhé:
# Khai báo một số float
gia_san_pham = 19.99
nhiet_do_hanoi = 32.5
pi = 3.14159
print(f"Giá sản phẩm: {gia_san_pham}")
print(f"Nhiệt độ Hà Nội: {nhiet_do_hanoi}°C")
print(f"Số Pi: {pi}")
# Thực hiện phép toán với float
tong_tien = gia_san_pham * 2 + 5.50 # Giả sử mua 2 sản phẩm và phí ship 5.50
print(f"Tổng tiền phải trả: {tong_tien}")
dien_tich_hinh_tron = pi * (5 ** 2) # Bán kính là 5
print(f"Diện tích hình tròn bán kính 5: {dien_tich_hinh_tron}")
# Chuyển đổi giữa int và float
so_nguyen = 10
so_float_tu_nguyen = float(so_nguyen) # Chuyển đổi int sang float
print(f"Số nguyên {so_nguyen} thành float: {so_float_tu_nguyen}")
so_float_co_duoi = 15.75
so_nguyen_tu_float = int(so_float_co_duoi) # Chuyển đổi float sang int (sẽ cắt bỏ phần thập phân)
print(f"Số float {so_float_co_duoi} thành int: {so_nguyen_tu_float}")
# Lưu ý về độ chính xác của float (điểm học thuật quan trọng)
# Đây là một đặc điểm cố hữu của cách máy tính biểu diễn số thực
print("\n--- Vấn đề về độ chính xác của Float ---")
ket_qua_khong_mong_muon = 0.1 + 0.2
print(f"0.1 + 0.2 = {ket_qua_khong_mong_muon}") # Output sẽ là 0.30000000000000004 thay vì 0.3
print("Tại sao lại thế? Máy tính biểu diễn float bằng hệ nhị phân, không phải mọi số thập phân đều có thể biểu diễn chính xác trong hệ nhị phân. Hãy coi nó như việc bạn cố gắng biểu diễn 1/3 dưới dạng số thập phân hữu hạn (0.3333...).")

Mẹo Vặt (Best Practices) từ Professor Creyt
- Luôn nhớ "bệnh" của float:
floatkhông phải lúc nào cũng chính xác tuyệt đối. Khi so sánh hai sốfloat, đừng dùng==trực tiếp. Thay vào đó, hãy kiểm tra xem hiệu số tuyệt đối giữa chúng có nhỏ hơn một ngưỡng rất nhỏ (gọi là epsilon) hay không. Ví dụ:abs(a - b) < 1e-9. - Dùng Decimal cho tiền tệ: Khi làm việc với tiền bạc hoặc các tính toán yêu cầu độ chính xác cao tuyệt đối (ví dụ: kế toán), hãy dùng module
decimalcủa Python. Nó chậm hơnfloatnhưng chính xác hơn nhiều, tránh được các sai số nhỏ không mong muốn. - Làm tròn đúng cách: Sử dụng hàm
round()khi cần hiển thị sốfloatmột cách "đẹp" hơn hoặc theo quy tắc làm tròn cụ thể. Nhưng nhớ,round()chỉ làm tròn để hiển thị, giá trị gốc của sốfloatvẫn có thể giữ độ chính xác ban đầu.
Ứng Dụng Thực Tế (những trang web/app bạn dùng hàng ngày)
Float xuất hiện khắp mọi nơi trong thế giới số của chúng ta:
- E-commerce (Shopee, Tiki, Amazon): Tính tổng giá sản phẩm, phí ship, giảm giá, thuế. Tất cả đều dùng
float(hoặcdecimalcho độ chính xác cao hơn). - Bản đồ/GPS (Google Maps, Grab): Tọa độ kinh độ, vĩ độ là những số
float. Khoảng cách, tốc độ di chuyển cũng vậy. - Tài chính (ứng dụng ngân hàng, chứng khoán): Giá cổ phiếu, lãi suất, số dư tài khoản. Đây là nơi
decimalthường được ưu tiên hơnfloatđể tránh sai sót. - Khoa học/Kỹ thuật: Các phép đo lường vật lý, tính toán kỹ thuật (nhiệt độ, áp suất, khối lượng, v.v.) trong các ứng dụng mô phỏng, phân tích dữ liệu.
Thử Nghiệm và Hướng Dẫn Nên Dùng Cho Case Nào
Nên dùng float khi:
- Bạn cần biểu diễn các đại lượng có giá trị thập phân (ví dụ: nhiệt độ 37.5 độ C, chiều cao 1.75 mét, giá 19.99 USD).
- Thực hiện các phép tính khoa học, kỹ thuật mà sai số nhỏ là chấp nhận được (hoặc có cách xử lý sai số hiệu quả).
- Tính toán tọa độ địa lý, đồ họa máy tính, hoặc các phép đo lường vật lý.
Nên cẩn thận với float (hoặc dùng decimal) khi:
- Làm việc với tiền tệ, kế toán, hoặc bất kỳ hệ thống nào yêu cầu độ chính xác tuyệt đối mà không dung thứ cho sai số dù nhỏ nhất.
- So sánh hai số
floatvới nhau để kiểm tra sự bằng nhau tuyệt đối.
Thử nghiệm nhỏ: Hãy thử tự viết một chương trình Python nhỏ tính tổng điểm trung bình các môn học của bạn (có điểm lẻ). Sau đó, hãy thử cộng 0.1 + 0.2 như ví dụ trên và in kết quả. Bạn sẽ thấy "ma thuật" của float ngay và hiểu tại sao chúng ta cần phải "biết người biết ta" khi làm việc với nó!
Vậy là chúng ta đã "lướt" qua thế giới của float trong Python. Nhớ rằng, mỗi kiểu dữ liệu đều có "sở trường" và "sở đoản" riêng. Hiểu rõ chúng sẽ giúp bạn trở thành một lập trình viên "cứng" hơn rất nhiều!
Thuộc Series: Python
Bài giảng này được tự động xuất bản ngẫu nhiên từ thư viện kiến thức. Đừng quên đón xem các Từ khoá Hướng Dẫn tiếp theo nhé!