Conversión entre tipos de datos,

- Conversión implícita de tipos

Si declaro estas variables
var var1 = "75";
var var2 = 25;
var var3, var4;
var3 = var1 + var2;
var4 = var2 + var1;

Las varibles var3 y var4 contienen ¿números o textos?

Cuando se suman cadenas de texto con cualquier otra cosa, los otros tipos de datos se convierten en cadenas de texto.

Pero si restamos, multiplicamos o dividimos "cadenas de texto", ¿sucede lo mismo?.

Código del primer alert Script.

<script language="javascript"> var num1="4"; var num2="2"; // Observa que definimos dos cadenas de texto alert("Cadena de Texto\n4+2= "+(num1+num2)); alert("Cadena de Texto\n4*2= "+(num1*num2)); </script> - El primer alert dice:

• Si sumamos dos cadenas (aunque contengan números) de texto el resultado es unión de los dos textos.

• Si multiplicamos (o hacemos cualquier operación aritmética que no sea la suma),
dos cadenas de texo que contienen números, se produce una conversión implícita de las cadenas a números y aparece el producto aritmético de los números.

¿Qué sucede si introducimos dos números a través de la función prompt?

Código del segundo alert Script.

<script language="javascript"> var num1,num2; num1=prompt("Escribe un número",""); num2=prompt("Escribe otro número",""); // Observar que definimos dos cadenas de texto alert("La suma es ="+(num1+num2)); </script> -No funciona como deseamos debido a que el resultado de un prompt, siempre es una cadena de texto.

El problema que tenemos pendiente, es ¿cómo sumar en JavaScript?

- Conversión explícita de tipos

parseFloat(cadena)
Toma la "cadena" y la transforma en un número en coma flotante, si es posible.
parseFloat ("123.456") = 123.456
parseFloat ("123ABC") = 123
parseFloat ("ABC") = NaN
parseInt(cadena, número)
Devuelve números enteros, el segundo argumento nos permite escoger la base de numeración (entre 2 y 36)
parseInt ("ABC",16) = 2748 ABC16 = 274810
Si no especificamos el segundo argumento, por defecto es 10.
Si la cadena empieza por 0x y no existe el segundo argumento, se entiende que es 16.
Si la cadena empieza por 0 y no existe el segundo argumento, se entiende que es 8
toString(argumento)
Si argumento = número
Devuelve una cadena que contiene el número
Puede haber un argumento opcional:
(13).toString(16) =”d” siendo 1310 = d16
(13).toString(2) = “1101” siendo 1310 = 11012

Código del tercer alert Script.

<script language="javascript"> var num1,num2; num1=prompt("Escribí un número,(entero, natural ó decimal)",""); num1=parseFloat(num1); num2=prompt("Escribí otro número,(entero, natural ó decimal)",""); num2=parseFloat(num2); alert("La suma es ="+(num1+num2)); </script> Funciona sin problemas...!

A partir de este momento hemos de tener claro si los “prompts” corresponden a números enteros, decimales o de texto:

- Si “x” ha de ser un número entero escribiremos:
x = parseInt(prompt(“Escribe un número entero”,””));
- Si “x” ha de ser un número decimal escribiremos:
x = parseInt(prompt(“Escribí un número entero o decimal”,””));
- Si “x” ha de ser una cadena de texto escribiremos:
x = prompt(“Escribí el texto correspondiente”,””);
Bajar el archivo de texto con el código completo

Volver

Cuatro Ejercicios de Matemáticas