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
- 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.
- 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.
- 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.