tutoriais mais recente desenvolvimento web
 

JavaScript Números


JavaScript tem apenas um tipo de number .

Numbers pode ser escrito com ou sem casas decimais.


Números de JavaScript

JavaScript numbers pode ser escrito com ou sem casas decimais:

Exemplo

var x = 34.00;    // A number with decimals
var y = 34;       // A number without decimals

Extra pequenos números grandes ou extra pode ser escrito com notação científica (expoente):

Exemplo

var x = 123e5;    // 12300000
var y = 123e-5;   // 0.00123

Números JavaScript são sempre 64-bit de ponto flutuante

Ao contrário de muitas outras linguagens de programação, JavaScript não define tipos diferentes de números, como números inteiros, curto, longo, de ponto flutuante etc.

número de JavaScript são sempre armazenados como números de ponto flutuante de precisão dupla, seguindo o padrão internacional IEEE 754.

Este formato armazena números em 64 bits, onde o número (fração) é armazenado em bits 0-51, o expoente em bits 52 a 62, e o sinal no bit 63:

Valor (aka Fração / Mantissa) Expoente Placa
52 bits (0 - 51) 11 bits (52 - 62) 1 bit (63)

Precisão

Inteiros (números sem um período ou notação expoente) são consideradas precisas até 15 dígitos.

Exemplo

var x = 999999999999999;   // x will be 999999999999999
var y = 9999999999999999;  // y will be 10000000000000000
Tente você mesmo "

O número máximo de decimais é de 17, mas a aritmética de ponto flutuante não é sempre 100% exato:

Exemplo

var x = 0.2 + 0.1;         // x will be 0.30000000000000004
Tente você mesmo "

Para resolver o problema acima, ele ajuda a multiplicar-se e dividir:

Exemplo

var x = (0.2 * 10 + 0.1 * 10) / 10;       // x will be 0.3
Tente você mesmo "

hexadecimal

JavaScript interpreta constantes numéricas como hexadecimal se forem precedidos por 0x.

Exemplo

var x = 0xFF;             // x will be 255
Tente você mesmo "

Nunca escreva um número com um zero à esquerda (como 07).
Algumas versões de JavaScript interpretar números como octal se eles são escritos com um zero à esquerda.

Por padrão, Javascript exibe números como base de 10 casas decimais.

Mas você pode usar o toString() método para números de saída como base 16 (hex), base 8 (octal), ou base 2 (binário).

Exemplo

var myNumber = 128;
myNumber.toString(16);     // returns 80
myNumber.toString(8);      // returns 200
myNumber.toString(2);      // returns 10000000
Tente você mesmo "

Infinidade

Infinito (ou -Infinity) é o valor JavaScript retornará se você calcular um número fora o maior número possível.

Exemplo

var myNumber = 2;
while (myNumber != Infinity) {          // Execute until Infinity
    myNumber = myNumber * myNumber;
}
Tente você mesmo "

Divisão por 0 (zero) também gera Infinito:

Exemplo

var x =  2 / 0;          // x will be Infinity
var y = -2 / 0;          // y will be -Infinity
Tente você mesmo "

O infinito é um número: typeOf Infinito retorna número.

Exemplo

typeof Infinity;        // returns "number"
Tente você mesmo "

NaN - Não é um número

NaN é uma palavra reservada JavaScript indicando que um valor não é um número.

Tentando fazer aritmética com uma string não numérica resultará em NaN (não um número):

Exemplo

var x = 100 / "Apple";  // x will be NaN (Not a Number)
Tente você mesmo "

No entanto, se a cadeia contém um valor numérico, o resultado será um número:

Exemplo

var x = 100 / "10";     // x will be 10
Tente você mesmo "

Você pode usar a função JavaScript global isNaN() para descobrir se um valor é um número.

Exemplo

var x = 100 / "Apple";
isNaN(x);               // returns true because x is Not a Number
Tente você mesmo "

Atente para NaN. Se você usar NaN em uma operação matemática, o resultado também será NaN:

Exemplo

var x = NaN;
var y = 5;
var z = x + y;         // z will be NaN
Tente você mesmo "

Ou o resultado pode ser uma concatenação:

Exemplo

var x = NaN;
var y = "5";
var z = x + y;         // z will be NaN5
Tente você mesmo "

NaN é um número, e typeof NaN retorna número:

Exemplo

typeof NaN;             // returns "number"
Tente você mesmo "

Números podem ser objetos

Normalmente números JavaScript são valores primitivos criado a partir de literais: var x = 123

Mas os números também podem ser definidos como objetos com a palavra-chave new: var y = new Number(123)

Exemplo

var x = 123;
var y = new Number(123);

// typeof x returns number
// typeof y returns object
Tente você mesmo "

Não crie objetos Number. Ele retarda a velocidade de execução.
A new palavra-chave complica o código. Isso pode produzir alguns resultados inesperados:

Ao usar o == operador de igualdade, igual número parece igual:

Exemplo

var x = 500;             
var y = new Number(500);

// (x == y) is true because x and y have equal values
Tente você mesmo "

Ao usar o operador de igualdade ===, números iguais não são iguais, porque o operador === espera que a igualdade em ambos os tipo e valor.

Exemplo

var x = 500;             
var y = new Number(500);

// (x === y) is false because x and y have different types
Tente você mesmo "

Ou ainda pior. Os objetos não podem ser comparados:

Exemplo

var x = new Number(500);             
var y = new Number(500);

// (x == y) is false because objects cannot be compared
Tente você mesmo "

JavaScript objectos não podem ser comparados.


Teste-se com exercícios!

Exercício 1 » Exercício 2» Exercício 3 » Exercício 4»