Tipo de datos DECIMAL de ESQL

El tipo de datos DECIMAL contiene una representación exacta de un número decimal. Los decimales tienen precisión, escala y redondeo. La precisión el número total de dígitos de un número:
  • La precisión mínima es 1
  • La precisión máxima es 34.
La escala es el número de dígitos que hay a la derecha del punto decimal.
  • La escala mínima (-exponent) es -999.999.999
  • La escala máxima (-exponent) es +999.999.999

Cuando se declara un DECIMAL, no se puede definir la precisión y la escala puesto que éstas se asignan automáticamente. La precisión y la escala sólo pueden especificarse cuando se está efectuando una transformación CAST a a DECIMAL.

Escala, precisión y redondeo

Se aplican las siguientes normas de escala, precisión y redondeo:
  • A menos que el redondeo se requiera para conservar la máxima precisión, la escala del resultado de una adición o sustracción es la mayor de las escalas de los dos operandos.
  • A menos que el redondeo se requiera para conservar la máxima precisión, la escala del resultado de una multiplicación es la suma de las escalas de los dos operandos.
  • La precisión del resultado de una división es el número de dígitos más pequeño que se necesita para representar el resultado exactamente y la precisión máxima.
  • Todos los cálculos de adición, sustracción, multiplicación y división se redondean al mínimo de dígitos significativos, según las necesidades, para permanecer dentro de la máxima precisión
  • Todos los redondeos automáticos son de banca o simétricos de medio par. Las reglas para esto son las siguientes:
    • Cuando el primer dígito eliminado es 4 o inferior, el primer dígito que se retiene no cambia
    • Cuando el primer dígito eliminado es 6 o más, el primer dígito que se retiene aumenta
    • Cuando el primer dígito eliminado es 5, el primer dígito retenido aumenta si es impar y no cambia si es par. De esto modo, tanto 1,5 como 2,5 se redondean a 2 mientras que 3,5 y 4,5 se redondean ambos a 4
    • Los números negativos se redondean con la misma regla

Literales numéricos de SQL

Los literales de SQL que están formados únicamente por una serie de dígitos sin comillas, es decir, los que no contienen ni una coma decimal ni un exponente (por ejemplo, 12345) son de tipo INTEGER (entero) si son suficientemente pequeños para ser representados como enteros. De lo contrario son de tipo DECIMAL.

Los literales de SQL que están formados por una serie de dígitos sin comillas, llevan, opcionalmente, un punto decimal y un exponente no contienen ni una coma decimal ni un exponente (por ejemplo, 123e1) son de tipo FLOAT (flotante) si son suficientemente pequeños para ser representados como flotantes. De lo contrario son de tipo DECIMAL.

Los literales de SQL formados por la palabra clave DECIMAL y una serie de dígitos entre comillas, con o sin coma decimal y con o sin exponente, son de tipo DECIMAL, por ejemplo, DECIMAL '42', DECIMAL '1,2346789e+203'.

Las series de dígitos de este tipo de literales también pueden tener los valores.
  • 'NAN', no es un número
  • 'INF', 'INFINITY'
  • '+INF', '+INFINITY'
  • '-INF', '-INFINITY'
  • 'MAX'
  • MIN'
(en cualquier mezcla de mayúsculas y minúsculas) para indicar los valores correspondientes

Conceptos relacionados
Flujos de mensajes
Tipos de datos ESQL
Correlaciones

Tareas relacionadas
Desarrollo de aplicaciones de flujos de mensajes
Desarrollo de ESQL

Referencia relacionada
Nodos incorporados
Tipo de datos INTEGER de ESQL
Tipo de datos FLOAT de ESQL