sql >> Databáze >  >> RDS >> Sqlserver

Jaký je rozdíl mezi Float a Numeric/Decimal na SQL Server - SQL Server / T-SQL výukový program, část 33

Plovoucí a reálná jsou přibližné datové typy. Datové typy Float a Real neukládají přesné hodnoty pro mnoho čísel. Hodnota může být extrémně uzavřená.

Numeric/Decimal jsou datové typy s pevnou přesností. Uloží hodnoty s přesnou přesností a škáluje to, co jste definovali.

Pokud potřebujete ukládat data tam, kde nezáleží na malých rozdílech, můžete použít Float nebo Real. Pokud ale potřebujete mít přesná data např. pro finanční aplikaci. K uložení přesných dat byste měli používat datový typ Numeric/Decimal nebo Money, protože malý rozdíl může ovlivnit výpočty.

Příklad:


Pojďme deklarovat dvě proměnné a uložit stejná data a uvidíme, co se stane s výstupem kvůli jejich datovému typu.
DECLARE @DecimalVariable DECIMAL(8, 2)

SET @DecimalVariable = 213429.95

DECLARE @FloatVariable FLOAT(24)

SET @FloatVariable = 213429.95

SELECT @DecimalVariable AS DecimalVariable
    ,@FloatVariable AS FloatVariable
 
 
 
 Rozdíl mezi pohyblivou a desetinnou/numerickou v SQL Server – T SQL výukový program 
 Jak můžeme vidět na výše uvedeném snímku, Decimal uložil a ukázal přesné hodnoty a tam, kde máme uložené hodnoty v float, zaokrouhloval hodnoty. 

Protože datové typy float/real jsou přibližné datové typy, nepoužívejte je v klauzuli Where speciálně s operátory =nebo <>.
  1. Schéma exportu MySql bez dat

  2. ExecuteScalar vs ExecuteNonQuery při vrácení hodnoty identity

  3. Jak odkazovat na klíče JSON, které obsahují speciální znaky při používání OPENJSON, JSON_QUERY a JSON_VALUE (SQL Server)

  4. Cizí klíč s více sloupci v MySQL?