Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Sự khác biệt giữa Float và Numeric / Decimal trong SQL Server - SQL Server / T-SQL Tutorial Part 33

Nổi và Thực là các kiểu dữ liệu gần đúng. Các kiểu dữ liệu Float và Real không lưu trữ các giá trị chính xác cho nhiều số. Giá trị có thể cực kỳ đóng.

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 <>.
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL - Trừ một giá trị cạn kiệt khỏi các hàng

  2. Thu thập dữ liệu tự động về các công việc đã hoàn thành trong MS SQL Server

  3. Rủi ro xung đột UUID sử dụng các thuật toán khác nhau

  4. Thiết lập và cấu hình SQL Server Replication

  5. SQL Server:Lỗi liên kết giao tiếp SSL yêu cầu (không nhận được gói)