Número (Real, Entero largo, Entero)
Número es un término genérico que significa:
- Los campos, variables o expresiones de tipo real. El rango del tipo Real es ±1,7e±308 (13 dígitos significativos).
- Los campos, variables o expresiones de tipo Entero largo. El rango para el tipo de datos Entero largo (4 bytes) es -2^31..(2^31)-1.
- Los campos, variables o expresiones de tipo Entero. El rango para el tipo de datos Entero (2 bytes) es -32.768..32.767 (2^15..(2^15)-1).
Nota: los valores de los campos enteros se convierten automáticamente en enteros largos cuando se utilizan en el lenguaje 4D.
Puede asignar cualquier tipo de dato numérico a otro; 4D realiza la conversión, truncando o redondeando si es necesario. Sin embargo, cuando los valores están fuera del rango, la conversión no devolverá un valor válido. Se pueden mezclar los tipos de datos numéricos en las expresiones.
Nota: en el manual de referencia del lenguaje 4D, sin importar el tipo de datos real, los parámetros de tipo Real, Entero y Entero largo en las descripciones de los comandos se indican como número, salvo que se indique lo contrario.
Constantes literales numéricas
Una constante literal numérica se escribe como un número real. Estos son algunos ejemplos de constantes numéricas:
27
123.76
0.0076
El separador decimal por defecto es el punto (.), independientemente del lenguaje del sistema. Si ha marcado la opción "Utilizar la configuración regional del sistema" en la página de Métodos de las Preferencias, debe utilizar el separador definido en su sistema.
Los números negativos se especifican con el signo menos (-). Por ejemplo:
-27
-123.76
-0.0076
Operadores numéricos
Operación | Sintaxis | Devuelve | Expression | Valor |
---|---|---|---|---|
Adición | Número + Número | Number | 2 + 3 | 5 |
Resta | Número - Número | Number | 3 – 2 | 1 |
Multiplicación | Número * Número | Number | 5 * 2 | 10 |
División | Número / Número | Number | 5 / 2 | 2.5 |
División entera | Número \ Número | Number | 5 \ 2 | 2 |
Módulo | Número % Número | Number | 5 % 2 | 1 |
Exponenciación | Número ^ Número | Number | 2 ^ 3 | 8 |
Igual | Número = Número | Boolean | 10 = 10 | True |
10 = 11 | False | |||
Desigualdad | Número # Número | Boolean | 10 #11 | True |
10 # 10 | False | |||
Mayor que | Número > Número | Boolean | 11 > 10 | True |
10 > 11 | False | |||
Menor que | Número < Número | Boolean | 10 < 11 | True |
11 < 10 | False | |||
Mayor o igual que | Número >= Número | Boolean | 11 >= 10 | True |
10 >= 11 | False | |||
Menor o igual que | Número <= Número | Boolean | 10 <= 11 | True |
11 <= 10 | False |
Módulo
El operador modulo % divide el primer número entre el segundo y devuelve un resto de número entero. He aquí algunos ejemplos:
- 10 % 2 devuelve 0 porque 10 está dividido uniformemente por 2.
- 10 % 3 devuelve 1 porque el resto es 1.
- 10,5 % 2 devuelve 0 porque el resto no es un número entero.
El operador modulo % devuelve valores significativos con números que están en el rango de los enteros largos (de –2^31 hasta 2^31 menos 1). Para calcular el módulo con números fuera de este rango, utilice el comando [Mod
(https://doc.4d.com/4dv20/help/command/en/page98.html)].
División entera
El operador de división entero largo \ devuelve valores significativos sólo con números enteros.
Comparación real
Para comparar dos reales por igualdad, el lenguaje 4D realmente compara el valor absoluto de la diferencia con el épsilon. Ver el comando SET REAL COMPARISON LEVEL
.
Por coherencia, el motor de base de datos 4D siempre compara los campos de base de datos de tipo real utilizando un valor de 10^-6 para épsilon y no tiene en cuenta el parámetro SET REAL COMPARISON LEVEL
.