Quando 2 numeri decimali (30,10) sono suddivisi in Sql Server 05, 2 ultimi decimali sembrano essere persi (non arrotondati, semplicemente troncati).Decimale server Sql (30,10) che perde gli ultimi 2 decimali
Ad esempio:
Declare @x decimal(30,10)
Declare @y decimal(30,10)
Declare @z decimal(30,10)
select @x = 2.1277164747
select @y = 4.8553794574
Select @z = @y/@x
select @z
Risultato: 2,28196731
Ma se 2 numeri che sono divisi vengono convertiti a stare a galla che sembra funzionare:
....
Select @z = cast(@y as float)/cast(@x as float)
select @z
Risultato: 2,28,196731 millions
Perché Sql sta facendo questo? E qual è il modo giusto di dividere i decimali senza perdere la precisione in Sql.
Buona domanda. Ciò che è ancora più strano è che la modifica delle dichiarazioni a (** 38 **, 10) lo rende effettivamente * peggio *, mentre cambiarle in (** 20 **, 10) sembra effettivamente risolverlo. Non ha senso ... – RBarryYoung