A Calculadora Científica é um avaliador de expressões só com botões: não há campo de texto nem captura do teclado, e cada token da linha de expressão vem do teclado de 33 teclas — os dez dígitos, um ponto decimal, os cinco operadores soma, subtração, multiplicação, divisão e potência, as constantes π e e, dez botões de função, um fatorial, uma tecla de parêntese, limpar, backspace e igual. A página carrega em modo DEG. Ao pressionar igual, a linha é reescrita com o resultado, então a resposta entra direto na operação seguinte. Cada valor é calculado no navegador a partir do objeto Math, sem backend e sem chamada de API. Comece na Calculadora Científica, mantenha DEG selecionado e pressione sin, ( ), 4, 5, ( ), =: a linha lê 0.7071067812.
O teclado
As 33 teclas estão em uma grade de cinco colunas. As três linhas de cima levam as funções e as teclas de edição: sin, cos, tan, π e limpar; asin, acos, atan, backspace e a tecla ( ); log, ln, sqrt, x! e igual. As quatro linhas de baixo levam os dígitos e os operadores: 7 8 9 com divisão e potência, 4 5 6 com multiplicação e a constante e, 1 2 3 com subtração e soma, e a última linha com 0, o ponto decimal e abs. A tecla x! leva um x no rótulo, mas insere só a marca !, e essa marca se liga ao inteiro digitado antes: 5, x!, = imprime 120. A tecla ( ) é a única fonte de parênteses, e insere um parêntese balanceado de cada vez em vez de um par: abre um grupo quando a linha está balanceada, e o fecha quando o argumento na frente está completo, de modo que uma chamada de função e seu aninhamento se digitam só com o teclado.
DEG e RAD
O botão alternador lê DEG ao carregar a página, e o modo muda duas coisas de uma vez. As três funções diretas leem o argumento em graus: sin(45) é 0.7071067812, cos(60) é 0.5 e tan(45) é 1. Em modo RAD as mesmas três chamadas leem o argumento em radianos, e sin(45) vira 0.8509035245. As três funções inversas imprimem o resultado na unidade correspondente: asin(1) é 90 em DEG e 1.5707963268 em RAD, e atan(1) é 45 em DEG. Alternar o modo não reescreve a linha; muda como o próximo igual a lê, então a mesma linha sin(45) avalia para dois números distintos sob os dois modos.
Qual logaritmo é qual
A tecla log é base dez e a tecla ln é natural. log(100) imprime 2, porque 10 elevado a 2 é 100, e ln(e) imprime 1, porque a constante e e o logaritmo natural são inversos um do outro. Não há seletor de base: um logaritmo base 2 tem que ser construído com os dois que existem, como log(x) dividido por log(2).
Potência, constantes e fatorial
A tecla ^ é o operador de potência. 2, ^, 1, 0, = imprime 1024, e como o resultado impresso vira a nova linha, continuar com ^, 2, = imprime 1048576. A tecla π sozinha imprime 3.1415926536, e 2, ×, π, = imprime 6.2831853072, porque resultados não inteiros são aparados para dez casas decimais. A tecla e é o número de Euler, 2.7182818285. O fatorial é só de inteiros: 5! é 120, 0! é 1, 17! é 355687428096000 e 20! é 2432902008176640000; 100! estoura o intervalo que imprime como inteiro plano e sai em notação científica como 9.33262154439441e+157.
Agrupamento e chamadas aninhadas
Como a tecla ( ) insere um parêntese de cada vez, o seno de 45 se digita como sin, ( ), 4, 5, ( ), e uma chamada aninhada se digita do mesmo jeito, de dentro para fora: o seno do cosseno de 0 é sin, ( ), cos, ( ), 0, ( ), ( ), onde a pressão depois do 0 fecha o cos interno e a seguinte fecha o sin externo. Em modo DEG a linha aninhada avalia para 0.0174524064. Os parênteses controlam a precedência exatamente como no papel: ( ), 1, +, 2, ( ), ×, 3 imprime 9, enquanto sem parênteses, 1, +, 2, ×, 3 imprime 7.
Resultados e a linha inválida
O igual imprime inteiros como inteiros planos e apara todo resultado não inteiro para dez casas decimais: 1÷3 imprime 0.3333333333, 0.1+0.2 imprime 0.3 e sqrt(2) imprime 1.4142135624. A string impressa, não o valor de precisão completa, vira a linha que a operação seguinte lê, então o aparo se deixa ver: depois de 1÷3, pressionar ×, 3, = imprime 0.9999999999, e depois de sqrt(2), pressionar ^, 2, = imprime 2.0000000001. Uma linha que não dá para avaliar levanta o erro de expressão inválida no idioma da página, e a linha fica na tela para correção: 1÷0, asin(2), (-1)^0.5 e 2.5! o levantam todos, e também 2π, porque o avaliador não tem multiplicação implícita e a tecla × tem que ser pressionada entre o número e a constante.
Os cantos de ponto flutuante
tan(90) em modo DEG não levanta um erro: imprime 16331239353195370. A conversão de 90 graus para radianos cai um fio abaixo do π/2 exato em ponto flutuante, onde a tangente não está definida, então o seno sobre o cosseno devolve um valor grande e finito em vez de falhar. Um inteiro com mais de quinze dígitos perde a cauda: 123456789123456789 entra como 123456789123456780, porque a string da expressão guarda os dezenove dígitos, mas a avaliação a analisa para um float de 64 bits, que conserva só uns quinze.
O que não é
A Calculadora Científica não é uma ferramenta de porcentagem: para a porcentagem de um número nos dois sentidos, a Calculadora de Porcentagem executa esse cálculo, e a guia de porcentagem cobre as perguntas de aumento e de redução. Também não é uma calculadora de desconto: para o preço rebajado e a economia, a Calculadora de Desconto faz essa aritmética. E não guarda estado além da linha: não há teclas de memória, nem histórico, nem resultados guardados nem repetição de constante, e a tecla limpar apaga a linha, o resultado e o erro de uma vez.