🔢 Métodos Numéricos
Así como los productos del supermercado tienen etiquetas con información (precio, peso, fecha de vencimiento), los números en HispanoLang tienen métodos incorporados que te dan información y permiten transformarlos.
Verificar Paridad: ¿Par o Impar?
Como clasificar productos en estantes pares e impares, puedes verificar si un número es par o impar.
numero.esPar(), numero.esImpar()variable numero = 42
mostrar numero + " es par: " + numero.esPar() // 42 es par: verdadero
mostrar numero + " es impar: " + numero.esImpar() // 42 es impar: falso
variable otro = 17
mostrar otro + " es par: " + otro.esPar() // 17 es par: falso
mostrar otro + " es impar: " + otro.esImpar() // 17 es impar: verdadero
// Clasificar números
para (variable i = 1; i <= 6; i++) {
si i.esPar() {
mostrar i + " → Par" // 2 → Par, 4 → Par, 6 → Par
} sino {
mostrar i + " → Impar" // 1 → Impar, 3 → Impar, 5 → Impar
}
}- .esPar(): Retorna verdadero si el número es divisible por 2
- .esImpar(): Retorna verdadero si NO es divisible por 2
- Útil para alternar colores, clasificar, validar
Verificar Signo: Positivo, Negativo, Cero
Como las etiquetas de temperatura que indican si es caliente (+) o frío (-), puedes verificar el signo de un número.
numero.esPositivo(), numero.esNegativo(), numero.esCero()variable temperatura = 25
mostrar temperatura + "°C es positivo: " + temperatura.esPositivo() // 25°C es positivo: verdadero
variable saldo = -150
mostrar "Saldo $" + saldo + " es negativo: " + saldo.esNegativo() // Saldo $-150 es negativo: verdadero
variable balance = 0
mostrar "Balance " + balance + " es cero: " + balance.esCero() // Balance 0 es cero: verdadero
// Validar datos
variable numeros = [10, -5, 0, 8, -3]
para (variable i = 0; i < 5; i++) {
variable n = numeros[i]
si n.esPositivo() {
mostrar n + " → Ganancia" // 10 → Ganancia, 8 → Ganancia
} sino si n.esNegativo() {
mostrar n + " → Pérdida" // -5 → Pérdida, -3 → Pérdida
} sino {
mostrar n + " → Neutro" // 0 → Neutro
}
}- .esPositivo(): Verdadero si el número es mayor que 0
- .esNegativo(): Verdadero si el número es menor que 0
- .esCero(): Verdadero si el número es exactamente 0
- Útil para validar saldos, temperaturas, resultados
Convertir a Texto
Como las etiquetas de precio que muestran "$99.99", puedes convertir números a texto para mostrarlos formateados.
numero.aTexto()variable precio = 1500
mostrar "Precio: $" + precio.aTexto() // Precio: $1500
variable cantidad = 25
variable mensaje = "Hay " + cantidad.aTexto() + " productos"
mostrar mensaje // Hay 25 productos
// Formatear para mostrar
variable total = 1234.56
mostrar "Total: $" + total.aTexto() // Total: $1234.56
// Concatenar con información
variable stock = 42
mostrar "Stock disponible: " + stock.aTexto() + " unidades" // Stock disponible: 42 unidades
// En una lista
variable precios = [100, 200, 300]
para (variable i = 0; i < 3; i++) {
mostrar "Item " + (i + 1).aTexto() + ": $" + precios[i].aTexto() // Item 1: $100, Item 2: $200, Item 3: $300
}- .aTexto(): Convierte el número a su representación textual
- Útil para construir mensajes, formatear salidas
- Funciona con enteros y decimales
- Equivalente a texto(numero)
Verificar si es Entero
Como distinguir entre productos vendidos por unidad (enteros) o por peso (decimales).
numero.esEntero()variable cantidad = 5
mostrar cantidad + " es entero: " + cantidad.esEntero() // 5 es entero: verdadero
variable precio = 99.99
mostrar precio + " es entero: " + precio.esEntero() // 99.99 es entero: falso
variable exacto = 100.0
mostrar exacto + " es entero: " + exacto.esEntero() // 100.0 es entero: verdadero
// Validar entrada
variable valores = [10, 5.5, 3, 7.25, 8]
para (variable i = 0; i < 5; i++) {
variable v = valores[i]
si v.esEntero() {
mostrar v + " → Cantidad válida" // 10 → Cantidad válida, 3 → Cantidad válida, 8 → Cantidad válida
} sino {
mostrar v + " → Redondear a " + redondear(v) // 5.5 → Redondear a 6, 7.25 → Redondear a 7
}
}- .esEntero(): Verdadero si no tiene parte decimal
- 5.0 se considera entero (la parte decimal es 0)
- 5.1 NO es entero
- Útil para validar cantidades, índices, identificadores
Valor Absoluto como Método
Obtener la magnitud de un número sin importar el signo.
numero.absoluto()variable positivo = 25
mostrar "Absoluto de " + positivo + ": " + positivo.absoluto() // Absoluto de 25: 25
variable negativo = -25
mostrar "Absoluto de " + negativo + ": " + negativo.absoluto() // Absoluto de -25: 25
// Calcular diferencia
variable temp1 = 15
variable temp2 = 28
variable diferencia = (temp1 - temp2).absoluto()
mostrar "Diferencia de temperatura: " + diferencia + "°C" // Diferencia de temperatura: 13°C
// Distancia entre puntos
variable punto1 = 50
variable punto2 = 80
variable distancia = (punto1 - punto2).absoluto()
mostrar "Distancia: " + distancia + " metros" // Distancia: 30 metros- .absoluto(): Retorna el valor sin signo
- Equivalente a valorAbsoluto(numero)
- Números positivos quedan igual
- Números negativos se vuelven positivos
Redondeo como Métodos
Redondear números usando métodos en lugar de funciones.
variable precio = 99.99
mostrar "Original: $" + precio // Original: $99.99
mostrar "Redondeado: $" + precio.redondear() // Redondeado: $100
mostrar "Techo: $" + precio.techo() // Techo: $100
mostrar "Piso: $" + precio.piso() // Piso: $99
// Calcular totales
variable subtotal = 123.45
variable total = subtotal.redondear()
mostrar "Subtotal: $" + subtotal + " → Total: $" + total // Subtotal: $123.45 → Total: $123
// Cantidades
variable cantidad = 3.7
mostrar "Necesitas al menos " + cantidad.techo() + " unidades" // Necesitas al menos 4 unidades
mostrar "Tienes completas " + cantidad.piso() + " unidades" // Tienes completas 3 unidades- .redondear(): Al entero más cercano
- .techo(): Siempre hacia arriba
- .piso(): Siempre hacia abajo
- Equivalentes a las funciones redondear(), techo(), piso()
Caso Práctico: Sistema de Inventario
Ejemplo completo usando métodos numéricos.
mostrar "=== SISTEMA DE INVENTARIO ===" // === SISTEMA DE INVENTARIO ===
variable productos = [
["Laptop", 1500, 5],
["Mouse", 50, 25],
["Teclado", 150, 12],
["Monitor", 800, 3]
]
variable totalInventario = 0
para (variable i = 0; i < 4; i++) {
variable nombre = productos[i][0]
variable precio = productos[i][1]
variable stock = productos[i][2]
variable subtotal = precio * stock
totalInventario = totalInventario + subtotal
mostrar "---" // ---
mostrar "Producto: " + nombre // Producto: Laptop, Producto: Mouse, Producto: Teclado, Producto: Monitor
mostrar "Precio: $" + precio.aTexto() // Precio: $1500, Precio: $50, Precio: $150, Precio: $800
mostrar "Stock: " + stock.aTexto() + " unidades" // Stock: 5 unidades, Stock: 25 unidades, Stock: 12 unidades, Stock: 3 unidades
mostrar "Valor: $" + subtotal.aTexto() // Valor: $7500, Valor: $1250, Valor: $1800, Valor: $2400
si stock.esImpar() {
mostrar " (Stock impar - verificar)" // (Stock impar - verificar) para Laptop, Mouse, Monitor
}
}
mostrar "" // (linea vacia)
mostrar "=== RESUMEN ===" // === RESUMEN ===
mostrar "Valor total del inventario: $" + totalInventario.aTexto() // Valor total del inventario: $12950Resumen de métodos numéricos:
- .esPar() / .esImpar(): Verificar paridad
- .esPositivo() / .esNegativo() / .esCero(): Verificar signo
- .aTexto(): Convertir a texto
- .esEntero(): Verificar si es número entero
- .absoluto(): Valor sin signo
- .redondear() / .techo() / .piso(): Redondeo