Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
6
respuestas

Resultado 34004

Hola, entiendo que al tener un string ("20") en los valores numéricos estos se concatenen y de como resultado 102004, lo que no tengo claro es, por qué al dividir el string con un número obtengo un número (34004)? el string no debería permanecer como un stirng por qué pasa a ser un valor numérico?

6 respuestas

Hola,

Como respuesta rapida te diria que JavaScript intenta ayudarte con las opraciones matematicas intentando convertirlas a numeros antes de ejecutarlas.

Pero existe un caso especial el simbolo "+" tambien se usa para concatenar textos Ejemplo documento.write("Jose " + " y " + " maria"); por ello esque primero prioriza esta accion cuando hablamos de texto + numero en los otros casos con los simbolos "-,*,/" intentara convertirlos a numero.

Para todo esto te recomiendo utilizar el parseInt() Ejemplo documento.write( ((parseInt(var1) + parseInt(var2)) + parseInt(var3)) ); o cuando lo extraigas del promt.

Como adicional te comento que es una buena practica encerrar entre parentesis una operación documento.write( ((5+3) + 8) );, por que se entiende mejor y ayudas al compilador a interpretar correctamente lo que estas buscando,

espero haberte sido de ayuda.

En cambio yo no entiendo por qué los concatena. Debería dar un error por querer unir números con el string "20". Lo probé cambiando cual era el dato entre comillas y hasta los encerré a los tres entre comillas, y el resultado fue el mismo. Lo comprobé pero es confuso.

hola, yo también tengo dudas del resultado de este código

Hola! yo también tengo la duda de por qué da ese resultado

Parece que con detectar que aunque sea un solo término está entre comillas, asume los otros que están concatenados por el "+", como strings. En este caso generaría un string con el valor 102012. Ahora por qué, después de actuar como si fuera texto, realiza la operación aritmética como si fuera número, es mi incógnita. Debemos estar atentos porque en otro tipo de operación, quizás no nos demos cuenta que el resultado fue erróneo. En este caso no había forma de no darse cuenta que 34004 no era el promedio.

Hola, como mencionaba:

  • El caracter mas (+) tambien es un elemento propio de las variables string.
  • cuando se optiene un valor desde un dialogo con prompt(), este devuelve un string

por eso cuando suman sus variables lo que hacen es concatenar o unir textos, por que solo estan usando strings., para ello recomiendo asegurarse utilizando la funcion parseInt() o parseFloat() para decimales, por ejemplo

    //parseInt(string);

    var numero1 = "5";
    var numero2 = "5";

    document.write("respuesta: " + ( parseInt(numero1) + parseInt(numero2) )); //resultado: 10


    var numero3 = parseInt( prompt("escriba un numero") ); //ejemplo 10
    var numero4 = parseInt( prompt("escriba otro numero") ); //ejemplo 10

    document.write("respuesta: " + ( numero3 + numero4 )); //resultado: 20

Y por que antes si restaba o multiplicaba?, Bueno es por que no usaban la letra mas y javascript al encontrarse con con simbolos como *. - o / intenta ayudar y convierte las variabes a numeros

Si este post te ayudó, por favor, marca como solucionado ✓