Parámetros
- P - precisión. Rango válido: [ 1 : 76 ]. Determina cuántos dígitos decimales puede tener el número (incluida la parte fraccionaria). De forma predeterminada, la precisión es 10.
- S - escala. Rango válido: [ 0 : P ]. Determina cuántos dígitos decimales puede tener la parte fraccionaria.
- P de [ 1 : 9 ] - Decimal32(S)
- P de [ 10 : 18 ] - Decimal64(S)
- P de [ 19 : 38 ] - Decimal128(S)
- P de [ 39 : 76 ] - Decimal256(S)
Rangos de valores de Decimal
- Decimal(P, S) - (-1 * 10^(P - S), 1 * 10^(P - S))
- Decimal32(S) - (-1 * 10^(9 - S), 1 * 10^(9 - S))
- Decimal64(S) - (-1 * 10^(18 - S), 1 * 10^(18 - S))
- Decimal128(S) - (-1 * 10^(38 - S), 1 * 10^(38 - S))
- Decimal256(S) - (-1 * 10^(76 - S), 1 * 10^(76 - S))
Representación interna
Operaciones y tipo de resultado
Decimal64(S1) <op> Decimal32(S2) -> Decimal64(S)Decimal128(S1) <op> Decimal32(S2) -> Decimal128(S)Decimal128(S1) <op> Decimal64(S2) -> Decimal128(S)Decimal256(S1) <op> Decimal<32|64|128>(S2) -> Decimal256(S)
- suma, resta: S = max(S1, S2).
- multiplicación: S = S1 + S2.
- división: S = S1.
Comprobaciones de desbordamiento
decimal_check_overflow. Cuando las comprobaciones están desactivadas y se produce un desbordamiento, el resultado será incorrecto: