🔄 Conversión de Tipos
Cuando llenas un formulario web, escribes tu edad como texto "25", pero el programa necesita el número 25 para hacer cálculos. La conversión de tipos transforma datos de un tipo a otro: texto a número, número a texto, texto a booleano.
Texto a Número Entero
Cuando recibes datos de un formulario, vienen como texto. Para hacer cálculos matemáticos, necesitas convertirlos a números.
entero(texto)variable edadTexto = "25"
variable edadNumero = entero(edadTexto)
mostrar "Edad como texto: " + edadTexto // Edad como texto: 25
mostrar "Edad como número: " + edadNumero // Edad como número: 25
mostrar "Edad + 5: " + (edadNumero + 5) // Edad + 5: 30
// Del formulario
variable cantidadFormulario = "10"
variable cantidad = entero(cantidadFormulario)
variable precioUnitario = 100
variable total = cantidad * precioUnitario
mostrar "Cantidad: " + cantidad // Cantidad: 10
mostrar "Total: $" + total // Total: $1000
// Ignora decimales
variable precioTexto = "99.99"
variable precioEntero = entero(precioTexto)
mostrar "Precio redondeado: $" + precioEntero // Precio redondeado: $99- entero(texto): Convierte texto a número entero
- Si el texto tiene decimales, los ignora (trunca)
- Si el texto no es un número válido, retorna 0
- Útil para datos de formularios, input de usuario
Texto a Número Decimal
Cuando necesitas conservar los decimales, usa la conversión a decimal en lugar de entero.
decimal(texto)variable precioTexto = "99.99"
variable precioNumero = decimal(precioTexto)
mostrar "Precio como texto: " + precioTexto // Precio como texto: 99.99
mostrar "Precio como número: " + precioNumero // Precio como número: 99.99
variable cantidad = 3
variable subtotal = precioNumero * cantidad
mostrar "Subtotal (3 items): $" + subtotal // Subtotal (3 items): $299.97
// Porcentaje
variable porcentajeTexto = "15.5"
variable porcentaje = decimal(porcentajeTexto)
variable descuento = 100 * (porcentaje / 100)
mostrar "Descuento " + porcentaje + "%: $" + descuento // Descuento 15.5%: $15.5
// Temperatura
variable tempTexto = "36.6"
variable temperatura = decimal(tempTexto)
mostrar "Temperatura: " + temperatura + "°C" // Temperatura: 36.6°C- decimal(texto): Convierte texto a número con decimales
- Conserva la precisión decimal
- Usa punto (.) como separador decimal
- Útil para precios, porcentajes, medidas precisas
Número a Texto
A veces necesitas mostrar números formateados o concatenarlos con texto de forma controlada.
texto(valor)variable precio = 1500
variable precioTexto = texto(precio)
mostrar "Precio: $" + precioTexto // Precio: $1500
variable cantidad = 25
variable mensaje = "Tienes " + texto(cantidad) + " items"
mostrar mensaje // Tienes 25 items
// Formatear números
variable total = 1234.56
mostrar "Total: $" + texto(total) // Total: $1234.56
// Con decimales
variable porcentaje = 15.5
mostrar "Descuento: " + texto(porcentaje) + "%" // Descuento: 15.5%
// Booleano a texto
variable activo = verdadero
mostrar "Estado: " + texto(activo) // Estado: verdadero- texto(valor): Convierte cualquier valor a texto
- Funciona con números, booleanos, listas, objetos
- Útil para construir mensajes, formatear salidas
- El texto se puede concatenar fácilmente
Texto a Booleano
Convertir respuestas como "si", "verdadero", "1" a valores booleanos reales.
variable respuesta1 = "verdadero"
variable respuesta2 = "falso"
variable respuesta3 = "si"
variable respuesta4 = "no"
mostrar "verdadero → " + texto(booleano(respuesta1)) // verdadero → verdadero
mostrar "falso → " + texto(booleano(respuesta2)) // falso → falso
// Validación de checkbox
variable aceptoTerminos = "verdadero"
si booleano(aceptoTerminos) {
mostrar "Términos aceptados" // Términos aceptados
}
// Valor del formulario
variable recibirOfertas = "falso"
si !booleano(recibirOfertas) {
mostrar "No recibirás ofertas" // No recibirás ofertas
}- booleano(texto): Convierte texto a verdadero/falso
- "verdadero", "true", "1", "si" → verdadero
- "falso", "false", "0", "no" → falso
- Útil para procesar respuestas de formularios
Verificar Tipo de Dato
Antes de convertir, a veces necesitas saber qué tipo de dato tienes.
tipoDe(valor)variable numero = 42
variable texto = "hola"
variable booleano = verdadero
variable lista = [1, 2, 3]
variable nulo = nulo
mostrar "42 es: " + tipoDe(numero) // 42 es: numero
mostrar "'hola' es: " + tipoDe(texto) // 'hola' es: texto
mostrar "verdadero es: " + tipoDe(booleano) // verdadero es: booleano
mostrar "[1,2,3] es: " + tipoDe(lista) // [1,2,3] es: lista
mostrar "nulo es: " + tipoDe(nulo) // nulo es: nulo
// Validar antes de convertir
variable dato = "25"
si tipoDe(dato) == "texto" {
variable num = entero(dato)
mostrar "Convertido: " + num // Convertido: 25
}- tipoDe(valor): Retorna el tipo como texto
- Tipos posibles: "numero", "texto", "booleano", "lista", "objeto", "nulo", "indefinido"
- Útil para validar datos antes de procesarlos
- Evita errores de conversión
Conversión Automática
HispanoLang a veces convierte tipos automáticamente, especialmente al concatenar.
// Concatenación automática
variable edad = 25
mostrar "Tengo " + edad + " años" // Tengo 25 años
variable precio = 99.99
mostrar "Precio: $" + precio // Precio: $99.99
// Operaciones
variable textoNumero = "10"
mostrar textoNumero + 5 // 105
mostrar entero(textoNumero) + 5 // 15
// Comparación
variable cantidadTexto = "100"
variable cantidadNumero = 100
mostrar cantidadTexto == cantidadNumero // falso- Al concatenar con +, números se convierten a texto
- Para operaciones matemáticas, convierte explícitamente
- Las comparaciones NO convierten automáticamente
- "100" == 100 es falso (texto vs número)
Manejo de Errores en Conversión
Qué pasa cuando la conversión no es posible.
// Texto inválido a número
variable textoInvalido = "abc"
variable resultado = entero(textoInvalido)
mostrar "entero('abc') = " + resultado // entero('abc') = 0
// Texto vacío
variable vacio = ""
variable resultadoVacio = entero(vacio)
mostrar "entero('') = " + resultadoVacio // entero('') = 0
// Texto con espacios
variable conEspacios = " 42 "
variable limpio = entero(conEspacios.recortar())
mostrar "entero(' 42 '.recortar()) = " + limpio // entero(' 42 '.recortar()) = 42
// Validación segura
variable input = "25"
si input.longitud() > 0 {
variable num = entero(input)
mostrar "Número válido: " + num // Número válido: 25
}- Texto inválido → retorna 0 o valor por defecto
- Siempre valida la entrada antes de convertir
- Usa .recortar() para limpiar espacios
- Verifica longitud para evitar vacíos
Caso Práctico: Formulario de Registro
Ejemplo completo procesando datos de un formulario.
mostrar "=== PROCESANDO FORMULARIO ===" // === PROCESANDO FORMULARIO ===
// Datos del formulario (vienen como texto)
variable nombreForm = " María García "
variable edadForm = "25"
variable precioForm = "99.99"
variable aceptaTerminosForm = "verdadero"
// Limpiar y convertir
variable nombre = nombreForm.recortar()
variable edad = entero(edadForm)
variable precio = decimal(precioForm)
variable aceptaTerminos = booleano(aceptaTerminosForm)
// Validar
si edad >= 18 y aceptaTerminos {
mostrar "Registro válido" // Registro válido
mostrar "Nombre: " + nombre // Nombre: María García
mostrar "Edad: " + edad // Edad: 25
mostrar "Precio: $" + precio // Precio: $99.99
variable total = precio * 1.21
mostrar "Total con IVA: $" + texto(total) // Total con IVA: $120.9879
} sino {
mostrar "Registro inválido"
}Resumen de conversiones:
- entero(texto): Texto → Número entero
- decimal(texto): Texto → Número decimal
- texto(valor): Cualquier valor → Texto
- booleano(texto): Texto → Verdadero/Falso
- tipoDe(valor): Obtener el tipo de un valor