Variables numéricas (1)
Existen en OOo Basic cinco tipos de variables numéricas, tres de tipo entero y dos de tipo decimal o de coma flotante. Las variables numéricas son las segundas en importancia de uso en los script útiles para la intervención de los SEO, tanto para los cálculos internos del script como para el manejo de la información documental. Un ejemplo claro es un docap sobre pruebas de evaluación; otro podría ser (aunque no lo es con la suficiente frecuencia) el análisis de las propias actuaciones. En ambos contextos, el manejo de datos numéricos son fundamentales.
Para ello nada mejor que esta tabla extraída del manual de Mauricio Baeza que nos ayudará a identificar con rapidez el nombre, el tipo y los datos que contiene cada una de esas variable.
Posiblemente te habrás dado cuenta que los tipos mas usados van a ser dos: Integer y Single, uno de cada tipo (entero y decimal). El tipo Byte (entero) podría ser más que suficiente para la mayoría de nuestros script, pero tiene un límite superior muy bajo, por lo que se puede ver desbordado con facilidad. Single tiene el "problema" de ser menos conocido que Double, por lo que es más frecuente usar el tipo más amplio con el consecuente desperdicio de memoria, por eso he optado por privilegiarlo.
No obstante, según los números que se manejes y las operaciones que se realicen con ellos, debemos contar con todos los tipos numéricos disponibles, ya que nuestra primera elección puede resultar inapropiada como resultado de la operatoria. Ese es el caso de Integer frente a Long y de Single frente a Double, pero no sólo, ya que no es infrecuente que de la operatoria entre dos valores Integer surja como resultado un valor decimal (Single o Double).
Finalmente Currency es un tipo derivado o de segundo nivel y tiene características muy específicas por su naturaleza, siendo su uso muy recomendable para el tratamiento de valores monetarios en contextos específicos de contabilidad o gestión económica. Al margen de estas situaciones, su uso es más bien irrelevante, como en nuestro contexto profesional.
La forma de trabajar con estas variables es la misma que con las variables alfanuméricas:
- Declaramos y tipificamos: Dim Num as Integer
- Y asignamos contenido, bien directamente [num= 24], bien como resultados del procesamiento de otras variables o datos [num= 20 + 5 , num = num1 + num2]. En este segundo caso ya entramos en la fase Procesamiento. (2)
- Errores por encadenamiento vs. suma, como el que se muestra en el script Operaciones1, cuando "sumamos" un valor numérico con otro alfanumérico...
Sub Operaciones1
Dim NumA As string
Dim NumB As Byte, NumR As Byte
NumA = "25"
NumB = 2
NumR = NumA + NumB -> Resultados 252, encadena 25 y 2
NumR = CInt(NumA) + NumB -> Resultado 27, suma 25+2
End sub
... obteniendo como resultado la concatenación de ambos. Para evitarlo es necesario convertir previamente el valor alfanumérico en numérico mediante CInt()
- Errores por truncamiento, que se producen cuando, necesitando precisión, utilizamos variables enteras y obtenemos un resultado que trunca la parte decimal. El resultado es correcto en función de las variables utilizadas, pero no desde la perspectiva de la operación, lo que puede dar lugar a errores de apreciación.
- También se pueden dar errores por desbordamiento, que son resultado de una operación que desborda las dimensiones del tipo de variable al que se asigna. Un ejemplo lo podemos ver en el script Operaciones3
Sub Operaciones3
Dim Num1 As Integer
Dim NumR As Long
Num1 = 234
NumR = Num1 ^ 2
End Sub
... que provoca error por desbordamiento en NumR; error que desaparece si transformamos esta variable al tipo Long.
El documento para trabajar con estos script [está aquí a tu disposición].
NOTAS
(1) Entrada publicada el 19/06/2023 revisada el 2/05/2024. Las modificaciones son mínimas, por lo que se mantiene la fecha de la publicación original.
(2) Observa que, al contrario que los datos alfanuméricos, los numéricos no se escriben entrecomillados. Precisamente la diferencia tipológica entre "24" como cadena alfanumérica y 24 como número se identifica por el uso/no uso de las comillas.
(3) No son estos los únicos operadores aritméticos, como podemos ver en [Walter Mora; F] (pp. 24-24), pero sí los de uso más frecuente. En Mora se recogen mezclados operadores y funciones con función de operadores, y no sólo de tipo aritmético, por lo que resulta un tanto confuso para nuestra exposición.
No hay comentarios:
Publicar un comentario
Comenta esta entrada