En informática, los números denormales, desnormalizados, no normales o subnormales son números que llenan el vacío de subdesbordamiento (underflow) en las proximidades del cero en aritmética de punto flotante.
Al llenar el vacío de subdesbordamiento (underflow) de esta manera, los dígitos significativos se pierden, pero no tan abruptamente como al utilizar el flush to zero en la aproximación de underflow (descartando todos los dígitos significativos cuando se alcanza el subdesbordamiento).
Por lo tanto la producción de un número denormal a veces se llama subdesbordamiento gradual, ya que permite un cálculo para perder precisión lentamente cuando el resultado es pequeño.
En formatos de intercambio binarios, los números subnormales están codificados con un exponente sesgado de 0, pero se interpretan con el valor del exponente permitido más pequeño, que es uno mayor (es decir, como si se codificara como un 1).
Sin desbordamiento gradual, la sustracción a-b puede dar subdesbordamiento y producir cero a pesar de que los valores no son iguales.
Aunque esto puede ser transparente para el usuario, puede originar cálculos que producen o consumen los números denormales y son mucho más lentos que los cálculos similares con números normales.
Manejar los valores denormales en el software siempre genera una disminución significativa en el rendimiento.
Debido a esto, una medida común para evitar valores denormales en procesadores, donde habría una penalización de rendimiento, es cortar la señal a cero una vez que alcanza niveles denormales o mezclar en una señal de ruido extremadamente silencioso.