informaticaPC

Tutorial de JavaScript

Manejo de números

El Objeto Number()

Usaremos Number() para crear un objeto de tipo de dato numérico.

  • En caso de que el parámetro sea una cadena con números la conversión se realizará correctamente.
  • Si el parámetro es un Objeto Date() (de tipo fecha) se devolverá el número de milisegundos desde el 1 de enero 1970 (UTC).
  • Si el parámetro es un valor lógico o booleano se devolverá cero si es 'false' o 1 si es 'true'.
  • En caso de que el parámetro no sea válido devuelve NaN (Not a Number).

A continuación te mostramos un ejemplo:

var objNumero1  = new Number( "" );
var objNumero2  = new Number( " " );
var objNumero3  = new Number( null );
var objNumero4  = new Number( undefined );
var objNumero5  = new Number( "0900" );
var objNumero6  = new Number( "0X900" );
var objNumero7  = new Number( 0900 );
var objNumero8  = new Number( 0X900 );
var objNumero9  = new Number(55);
var objNumero10 = new Number(" 55");
var objNumero11 = new Number("55 ");
var objNumero12 = new Number("55");
var objNumero13 = new Number("55 77");
var objNumero14 = new Number("55 BC");
var objNumero15 = new Number("BC 55");
var objNumero16 = new Number("55A");
var objNumero17 = new Number("B-55A");
var objNumero18 = new Number(true);
var objNumero19 = new Number(false);
var objNumero20 = new Number( new Date() );
var objNumero21 = new Number( 55,60 );
var objNumero22 = new Number( 55.60 );

document.write( objNumero1  + "<br />" );   // Devuelve 0
document.write( objNumero2  + "<br />" );   // Devuelve 0
document.write( objNumero3  + "<br />" );   // Devuelve 0
document.write( objNumero4  + "<br />" );   // Devuelve NaN
document.write( objNumero5  + "<br />" );   // Devuelve  900
document.write( objNumero6  + "<br />" );   // Devuelve 2304
document.write( objNumero7  + "<br />" );   // Devuelve  900
document.write( objNumero8  + "<br />" );   // Devuelve 2304
document.write( objNumero9  + "<br />" );   // Devuelve 55
document.write( objNumero10 + "<br />" );   // Devuelve 55
document.write( objNumero11 + "<br />" );   // Devuelve 55
document.write( objNumero12 + "<br />" );   // Devuelve 55
document.write( objNumero13 + "<br />" );   // Devuelve NaN
document.write( objNumero14 + "<br />" );   // Devuelve NaN
document.write( objNumero15 + "<br />" );   // Devuelve NaN
document.write( objNumero16 + "<br />" );   // Devuelve NaN
document.write( objNumero17 + "<br />" );   // Devuelve NaN
document.write( objNumero18 + "<br />" );   // Devuelve 1
document.write( objNumero19 + "<br />" );   // Devuelve 0

// si lo pruebas te dará un valor diferente, ya que harás el cálculo en otra fecha y hora:
document.write( objNumero20 + "<br />" );   // Devuelve 1305307570161

document.write( objNumero21 + "<br />" );   // Devuelve 55
document.write( objNumero22 + "<br />" );   // Devuelve 55.6

Descargar ejemplo

Información

Para convertir a numérico otro tipo de dato, es mejor utilizar la función de Javascript parseInt().

Información

Al crear una variable de forma normal y asignarle un número, se tratará igualmente como tal.

Información

El separador decimal en JavaScript se indica usando un punto.

Información

UTC son las siglas de Universal Time Coordinated (o Tiempo Universal Coordinado en español), también conocido como tiempo civil, y es la zona horaria respecto a la que se calculan las otras zonas del mundo. Se trata digamos de la hora mundial.

Más información

Vea también: [ parseInt() ]

La función Number()

Para convertir otros tipos de datos a número podemos usar también la función Number():

var num1 = Number("55");
var num2 = Number("55 BC");

document.write( num1 + "<br />" );   // Devuelve 55
document.write( num2 + "<br />" );   // Devuelve NaN
Información

Para convertir a numérico otro tipo de dato, es mejor utilizar la función de Javascript parseInt().

Más información

Vea también: [ parseInt() ]

Comprobar si un valor es numérico

En ocasiones necesitaremos comprobar si un determinado valor se trata de un número válido, y para ello usaremos la función de JavaScript isNaN() (Is Not A Number) que devolverá 'false' si es un número válido o 'true' si NO ES un número válido: esto puede resulta confuso, pero es lo que realmente indica el nombre de dicha función.

document.write( isNaN(33)     + "<br />" );    // Devuelve: false
document.write( isNaN(-33)    + "<br />" );    // Devuelve: false
document.write( isNaN("33")   + "<br />" );    // Devuelve: false
document.write( isNaN("h33")  + "<br />" );    // Devuelve: true
document.write( isNaN("x03")  + "<br />" );    // Devuelve: true
document.write( isNaN("33H")  + "<br />" );    // Devuelve: true
document.write( isNaN("33-p") + "<br />" );    // Devuelve: true

Como curiosidad y cosa a tener en cuenta, en los siguientes casos isNaN() devuelve 'false', indicando que se trata de números...:

document.write( isNaN(null) );  // Devuelve: false
document.write( isNaN("") );    // Devuelve: false
document.write( isNaN(" ") );   // Devuelve: false

Descargar ejemplo

Número de decimales

Con el método toFixed() devolveremos el número especificando el número de decimales que debe tener, a la vez que podemos realizar un redondeo hacia arriba del mismo:

var objNumero1 = new Number("55");
var objNumero2 = new Number("55");

document.write( objNumero1.toFixed(2) + "<br />" );     // Devuelve 55.00
document.write( objNumero2.toFixed(3) + "<br />" );     // Devuelve 55.000

var objNumero3 = new Number("55.4");
var objNumero4 = new Number("55.5");
var objNumero5 = new Number("55.6");

document.write( objNumero3.toFixed() + "<br />" );     // Devuelve 55
document.write( objNumero4.toFixed() + "<br />" );     // Devuelve 56
document.write( objNumero5.toFixed() + "<br />" );     // Devuelve 56

Descargar ejemplo

Precisión numérica

Usando el método toPrecision() es posible indicar el número de dígitos, realizándose también redondeo hacia arriba:

var objNum1 = new Number("55.867");

document.write( objNum1.toPrecision()  + "<br />" );   // Devuelve "55.867"
document.write( objNum1.toPrecision(2) + "<br />" );   // Devuelve "56"
document.write( objNum1.toPrecision(3) + "<br />" );   // Devuelve "55.9"
document.write( objNum1.toPrecision(4) + "<br />" );   // Devuelve "55.87"

Descargar ejemplo

Convertir una cadena a formato numérico

Para convertir una cadena a número usaremos las siguientes funciones de JavaScript:

  • parseInt(): convierte una cadena a número entero. En el primer parámetro escribiremos la cadena, y en el segundo el sistema numérico al que deseamos convertirla. En caso de especificarlo se seguirán las siguientes reglas:
    • Si la cadena comienza con '0x' se convertirá a formato hexadecimal (como si pusiéramos 16 en el segundo parámetro).
    • Si la cadena comienza con cero se convertirá a formato octal (como si pusiéramos 8 en el segundo parámetro). Así pues, si estamos trabajando en formato decimal es recomendable especificarlo siempre, poniendo '10' como segundo parámetro.
    • Si la cadena comienza con cualquier otro valor se convertirá a formato decimal (como si pusiéramos 10 en el segundo parámetro).
    • Si el primer carácter de la cadena no es un número se devuelve NaN (error, al no tratarse de un número).
  • parseFloat: convierte una cadena a número decimal.

A continuación puedes ver unos ejemplos:

document.write( parseInt("50365", 8)   + "<br />" );  // Devuelve: 20725 (octal)
document.write( parseInt("50365", 10)  + "<br />" );  // Devuelve: 50365 (decimal)
document.write( parseInt("50365", 16)  + "<br />" );  // Devuelve: 328549 (hexadecimal)
document.write( parseInt("33,565")     + "<br />" );  // Devuelve: 33
document.write( parseInt("44.565")     + "<br />" );  // Devuelve: 44
document.write( parseInt("88")         + "<br />" );  // Devuelve: 88
document.write( parseInt("088556")     + "<br />" );  // Devuelve: 0
document.write( parseInt("0x88556")    + "<br />" );  // Devuelve: 558422
document.write( parseInt("true")       + "<br />" );  // Devuelve: NaN (no es un número)
document.write( parseInt("false")      + "<br />" );  // Devuelve: NaN
document.write( parseInt( new Date() ) + "<br />" );  // Devuelve: NaN
document.write( parseInt("12/07/2011") + "<br />" );  // Devuelve: 12
document.write( parseInt("p55")        + "<br />" );  // Devuelve: NaN

document.write( parseFloat("33,4")  + "<br />" );     // Devuelve: 33
document.write( parseFloat("33,5")  + "<br />" );     // Devuelve: 33
document.write( parseFloat("33,6")  + "<br />" );     // Devuelve: 33
document.write( parseFloat("44.4")  + "<br />" );     // Devuelve: 44.4
document.write( parseFloat("44.56") + "<br />" );     // Devuelve: 44.56
document.write( parseFloat("44.6")  + "<br />" );     // Devuelve: 44.6
document.write( parseFloat("55.4")  + "<br />" );     // Devuelve: 55.4
document.write( parseFloat("55.A6") + "<br />" );     // Devuelve: 55
document.write( parseFloat("5B5.6") + "<br />" );     // Devuelve: 5
document.write( parseFloat("C55.6") + "<br />" );     // Devuelve: NaN

Descargar ejemplo

Recuerda que en JavaScript el separador de decimales es el punto.

Información

Como hemos comentado antes, si estamos trabajando en formato decimal es recomendable especificarlo siempre, poniendo '10' como segundo parámetro.

Primera página Anterior Siguiente Última página
Usamos cookies para ofrecerte una experiencia mejorada, el continuar navegando supone que aceptas su uso