Ho una tabella con una colonna smallint contenente percentuali come numeri interi (cioè, 50, 75, 85, ecc)Perché SQL Server termina i risultati della divisione di due numeri interi?
Quando divido questa colonna 100, come in
SELECT MY_COLUMN/100 AS PCT_AS_FRACTION
FROM MY_TABLE
la il risultato è arrotondato al numero intero più vicino. Ad esempio, per una riga che contiene il numero "50", ottengo zero come risultato.
posso duplicare questo con una semplice dichiarazione:
SELECT 50/100 AS TEST_VALUE
Perché è questo, e come posso ottenere una maggiore precisione nel mio risultato?
Dividendo per 100,0 opere.Semplice spiegazione per un semplice problema. Grazie :) – JosephStyons
Per inciso, moltiplicare per 0,01 ha lo stesso effetto, ed è forse più ovvio. – JosephStyons
Il termine specifico 'speak integer' è * truncation *. '75/100' restituisce ancora' 0'. La definizione è semplicemente rimuovere qualsiasi parte frazionaria dal numero. – Rabid