2
respuestas

[Duda] Sobre las operaciones con strings - números enteros

Códigos de programas de estadísticas de fútbol y del IMC Hola a tod@s! Tengo una duda respecto a los prompt y las operaciones que se realizan. Por qué para el programa del cálculo de IMC solo se coloca el prompt, cuya entrada es un string, y con esto basta para que se calcule el valor (función calcularIMC) y no se debe realizar una conversión por ejemplo la que utilizamos en el programa a la derecha, cuando usamos el parseInt. Claro está que en el caso del IMC y del dato de la altura sería evidentemente una conversión de string a decimal... pero en sí, no entiendo el por qué bajo unas condiciones se usan y funciona y bajo otras no.

Gracias de antemano en lo que me puedan ayudar para comprender mejor este proceso lógico.

2 respuestas

Hola lo que sucede es que en el programa para el IMC no se requiere ninguna suma o concatenación, ahí está la diferencia. Debemos de especificar que queremos sumar dos números, porque también podemos sumar (concatenar) dos "String". El programa no entenderá la diferencia de hacer 2+2=4 que 2+2=22 a menos que le digamos que hablamos de números :)

Hola Sara, lo que tengo entendido es el problema con las concatenaciones, cuando quieres realizar una operación entre un string y un entero o decimal, y tambien dependera del orden en que se acomoden los parametros. Por ejemplo si quieres multiplicar un entero * un string el resultado sera:

var operacion = string * 2;
console.log(operacion)

el resultado se transformara en un valor numérico, igual con este otro ejemplo:

var operacion = (string * 2)+3;
console.log(operacion)

de igual manera obtendras el resultado en forma de valor numérico. El problema es cuando tienes otra variable como string y la quieres aplicar.

var operacion = (string * 2)+string;
console.log(operacion)

Aqui se va realizar la operación dentro de los paréntesis pero la va concatenar con el ultimo valor, y este seria en forma de cadena

var string1 = "2";
var string2 = "7"

console.log((string2 * 3)+string1);

El resultado en lugar de ser (7*3)+2=23, en la consola se imprimirá (212), 21 resultante de la operación y el 2 concatenado del segundo valor.

Al final el convertir los string a int es solo para no tener estos problemas y que el resultado sea el que esperamos. Espero haberte ayudado =D