Numeric / Decimal là các kiểu dữ liệu có độ chính xác cố định. Nó sẽ lưu trữ các giá trị với độ chính xác chính xác và chia tỷ lệ những gì bạn đã xác định.
Nếu bạn cần lưu trữ dữ liệu mà sự khác biệt nhỏ không quan trọng, bạn có thể sử dụng Float hoặc Real. Nhưng nếu bạn cần phải có dữ liệu chính xác chẳng hạn như cho ứng dụng tài chính. Bạn nên sử dụng kiểu dữ liệu Numeric / Decimal hoặc Money để lưu dữ liệu chính xác, vì sự khác biệt nhỏ có thể ảnh hưởng đến tính toán.
Ví dụ:
Hãy khai báo hai biến và lưu cùng một dữ liệu và xem điều gì xảy ra với đầu ra do kiểu dữ liệu của chúng.
DECLARE @DecimalVariable DECIMAL(8, 2) SET @DecimalVariable = 213429.95 DECLARE @FloatVariable FLOAT(24) SET @FloatVariable = 213429.95 SELECT @DecimalVariable AS DecimalVariable ,@FloatVariable AS FloatVariable
Sự khác biệt giữa Float và Decimal / Numeric trong SQL Server - T SQL Tutorial
Như chúng ta có thể thấy trong ảnh chụp nhanh ở trên, Hệ thập phân được lưu trữ và hiển thị các giá trị chính xác và nơi chúng ta đã lưu các giá trị trong float, nó làm tròn các giá trị.
Vì kiểu dữ liệu float / real là kiểu dữ liệu gần đúng, nên tránh sử dụng chúng bằng cách sử dụng trong mệnh đề Where đặc biệt với các toán tử =hoặc <>.