sql >> Databasteknik >  >> RDS >> Sqlserver

Vad är skillnaden mellan Float och Numeric/Decimal i SQL Server - SQL Server / T-SQL Tutorial Del 33

Flytande och verkligt är ungefärliga datatyper. Flytande och verkliga datatyper lagrar inte exakta värden för många siffror. Värdet kan vara extremt stängt.

Numeriska/decimaler är fasta precisionsdatatyper. Den kommer att lagra värdena med exakt precision och skala det du har definierat.

Om du behöver lagra data där liten skillnad inte spelar någon roll, kan du använda Float eller Real. Men om du behöver ha exakta uppgifter som för ekonomisk tillämpning. Du bör använda datatyp numerisk/decimal eller pengar för att spara exakta data, eftersom små skillnader kan påverka beräkningarna.

Exempel:


Låt oss deklarera två variabler och spara samma data och se vad som händer med utdata på grund av datatypen för dem.
DECLARE @DecimalVariable DECIMAL(8, 2)

SET @DecimalVariable = 213429.95

DECLARE @FloatVariable FLOAT(24)

SET @FloatVariable = 213429.95

SELECT @DecimalVariable AS DecimalVariable
    ,@FloatVariable AS FloatVariable
 
 
 
 Skillnaden mellan Float och Decimal/Numeric i SQL Server - T SQL Tutorial 
 Som vi kan se i ögonblicksbilden ovan, lagrade och visade Decimal exakta värden och där vi har sparat värden i float, avrundade det värdena. 

Eftersom flytande/ verkliga datatyper är ungefärliga datatyper, Undvik att använda dem med hjälp av Where-satsen speciellt med =eller <> operatorer.
  1. Räkna rader per timme i SQL Server med fullt datum-tidsvärde som resultat

  2. Hur parallella planer startar – Del 4

  3. Försöker få tillgång till icke-objekt - CodeIgniter

  4. Sammanfoga och gruppera flera rader i Oracle