I tiene una tabla con una columna smallint que contiene porcentajes como números enteros (es decir, 50, 75, 85, etc.)¿Por qué SQL Server redondea los resultados de dividir dos enteros?
Cuando divido esta columna por 100, como en
SELECT MY_COLUMN/100 AS PCT_AS_FRACTION
FROM MY_TABLE
la el resultado se redondea al número entero más cercano. Por ejemplo, para una fila que contiene el número "50", obtengo cero como resultado.
puedo duplicar este con una simple declaración:
SELECT 50/100 AS TEST_VALUE
¿Por qué, y cómo puedo obtener una mayor precisión en mi resultado?
Dividir por 100.0 trabajos.Explicación simple para un problema simple Gracias :) – JosephStyons
Por cierto, multiplicar por 0.01 tiene el mismo efecto, y es quizás más obvio. – JosephStyons
El término específico de 'integer-speak' es * truncation *. '75/100' todavía devuelve' 0'. La definición es simplemente eliminar cualquier parte fraccionaria del número. – Rabid