FreeToGenerate.com

Converte entre notação científica, de engenharia e o número por extenso trabalhando sobre os dígitos, e mostra onde o seu navegador teria arredondado. Nada é enviado.

Experimente:
Científica
6.02214076e+23
De engenharia
602.214076e+21
Escrito por extenso
602214076000000000000000
Potência de dez
23
Prefixo do SI
zetta
O que o JavaScript imprime
6.02214076e+23

A resposta do seu próprio navegador

O JavaScript passou para notação exponencial por conta própria. Isso acontece de 1e21 para cima e abaixo de 1e-6, e é fixado pela linguagem, não por esta página.

As conversões são feitas sobre os dígitos e não sobre um número de ponto flutuante, então um valor de cinquenta dígitos mantém os cinquenta. Os limiares citados do JavaScript vêm da seção 6.1.6.1.20 do ECMA-262 e são conferidos contra a própria linguagem.

Também disponível em: English · Español · Français · العربية

Conversor de notação científica

As formas científica, de engenharia e por extenso do mesmo número, calculadas com exatidão, e os limiares em que o JavaScript troca de formato sozinho.

O que é notação científica?

A notação científica escreve um número como um único algarismo, uma parte decimal e uma potência de dez: 6,02214076e23 em vez de um 6 seguido de mais vinte e três algarismos. A mantissa vale sempre pelo menos 1 e menos que 10, o que torna imediata a comparação entre dois números: o expoente dá a escala num relance e a mantissa dá o valor dentro dela.

A notação de engenharia é a mesma ideia com uma regra a mais: o expoente precisa ser múltiplo de três. Isso não é enfeite, é o que alinha o número com os prefixos do SI, então 12345 é 12,345e+3 — doze quilo-alguma-coisa e um pouco — e não 1,2345e+4, que não corresponde a prefixo nenhum. Esta página mostra as duas, junto com o nome do prefixo quando existe.

A terceira forma é simplesmente escrever o número por extenso. É a que se usa quando o valor precisa ser lido e não calculado, e é onde os conversores erram sem avisar, porque quase todos entregam o número à linguagem em que foram escritos e imprimem o que vier.

Como usar

  1. Digite um número em qualquer das três formas. Por extenso, com um e, ou com vírgula decimal — todas são lidas. Os quatro botões de exemplo cobrem um número enorme, um minúsculo, o ponto exato em que o JavaScript troca de formato e outro com mais dígitos do que dá para guardar.
  2. Leia as três conversões. Científica, de engenharia e por extenso, cada uma com botão de copiar, mais a potência de dez e o prefixo do SI correspondente.
  3. Compare a última linha com as três primeiras. Essa linha é o que o próprio Number do seu navegador imprimiria para a mesma entrada. Onde diferir, o parágrafo abaixo explica por quê.

Onde o JavaScript troca de formato sozinho

Todo conversor que roda num navegador e entrega a entrada a um Number herda um comportamento escrito na própria linguagem. A ECMA-262 define como um número vira string, e ela troca para notação exponencial em dois pontos fixos: a partir de 1e21 e abaixo de 1e-6. Então cem quintilhões é impresso por extenso como 100000000000000000000, e dez vezes isso é impresso como 1e+21. Nada mudou no número — mudou o formato, porque a especificação manda.

O mesmo teto pega o toFixed, que é o que quase todo código usa para formatar dinheiro. Peça duas casas decimais em 1e21 e volta a string 1e+21, casas decimais e tudo, porque a especificação manda desistir acima daquele ponto. Um total que cresce além de um sextilhão deixa de ser um total e vira um pedaço de notação científica no meio de uma fatura.

Na ponta pequena acontece o mesmo ao contrário: 0,000001 é impresso por extenso e 0,0000001 vira 1e-7. Os dois limiares são conferidos aqui contra a própria linguagem, em todas as potências de dez de -30 a 30, então os números desta página são medidos e não lembrados.

Esta página escapa disso tudo convertendo os dígitos diretamente em vez de passar por um número de ponto flutuante, e é por isso que um valor de cinquenta dígitos mantém os cinquenta. A última linha continua mostrando o que o seu navegador teria dito, porque é o que o resto do seu ferramental fará com a mesma entrada.

Limites honestos

A conversão é exata, mas não é aritmética de precisão arbitrária. Nada é somado, multiplicado ou arredondado: os dígitos que você digita são rearranjados em torno de uma vírgula e ganham um expoente, que é tudo o que uma troca de notação é. Se você precisa calcular com números muito longos, isso é outra ferramenta.

Zeros finais da mantissa são descartados, então 1200 vira 1,2e+3 e não 1,200e+3. É uma escolha real e tem custo: nas ciências esses zeros significam algo, porque 1,200e+3 declara quatro algarismos significativos e 1,2e+3 declara dois. Se o que você acompanha é precisão, a calculadora de algarismos significativos deste site é a página que os mantém.

A tabela de prefixos do SI vai de quecto a quetta, a faixa adotada pela Conferência Geral de Pesos e Medidas, com os quatro mais novos acrescentados em 2022. Além disso, a ferramenta diz que não existe prefixo em vez de inventar um, e um número na unidade base diz isso explicitamente: não ter prefixo não é o mesmo que não haver prefixo.

O aviso de perda de dígitos compara os dígitos que o seu navegador imprime de volta com os que você digitou, e não um número de ponto flutuante com outro. Comparar dois doubles não diria nada, já que um valor que perdeu precisão vira o mesmo double de qualquer jeito. Isso significa que um número como 0,1, que nenhum double guarda exato, não é sinalizado: ele volta impresso como 0,1, e isso qualquer um confere.

Por que é grátis?

A conversão é aritmética sobre strings rodando no seu navegador. Não há servidor, então não há o que cobrar nem cadastro a fazer.

Nada é enviado e nada é guardado. Recarregue a página e ela terá esquecido o número.