nella divisione diretta SQL Server di due ritorni interi numero intero, anche se il risultato dovrebbe essere il galleggiante. C'è un esempio qui sotto per ottenerlo attraverso:
--1--
declare @weird_number_float float
set @weird_number_float=22/7
select @weird_number_float
--2--
declare @weird_number_decimal decimal(18,10)
set @weird_number_decimal=22/7
select @weird_number_decimal
--3--
declare @weird_number_numeric numeric
set @weird_number_numeric=22/7
select @weird_number_numeric
--Right way
declare @weird_number float
set @weird_number=cast(22 as float)/cast(7 as float)
select @weird_number
Proprio ultimo blocco restituirà il 3,14285714285714. Nonostante il secondo blocco definito con la giusta precisione, il risultato sarà 3.00000.
fonte
2016-12-19 07:43:46
Quale tipo di dati è @weight? –
è un 'int': DECLARE @weight INT – Roch