AZ Tools

Evaluador de Expresiones Matemáticas

Día a día

Calculadora segura para expresiones como las que escribirías en papel: `(1 + 2) * 3.14`, `sqrt(2)`, `sin(pi / 4)`, `log10(1000)`, `2^10`. Operadores `+ - * / % ^` funcionan; las funciones y constantes vienen de una lista permitida fija mapeada a `Math.*` — `sin/cos/tan/asin/acos/atan/atan2`, `sinh/cosh/tanh`, `sqrt/cbrt/abs/sign/floor/ceil/round/trunc`, `log/log2/log10/ln/exp/pow`, `min/max/hypot`, más `pi/e/tau`. Identificadores fuera de esa lista se rechazan, así el input no puede alcanzar la página ni el runtime JavaScript.

Prueba:

Resultado

8

Seguro por construcción: los identificadores deben venir de la allowlist (sin, cos, tan, sqrt, log, ln, exp, pi, e, tau, min, max, hypot, …). Sin variables, sin string literals, sin punto y coma.

Cómo usar

  1. Escribe una expresión — operadores, paréntesis, decimales y los nombres permitidos.
  2. El resultado se actualiza en vivo; cópialo si lo necesitas en otra parte.
  3. `^` es exponente (como en matemáticas, no XOR bit a bit). Para potencias de variables usa `pow(x, y)` o `x^y`.

Preguntas frecuentes

¿Se usa `eval` por debajo?
Se usa `new Function(...)`, pero solo después de parsear el input por identificadores y matchearlos contra una allowlist (`sin`, `sqrt`, `pi`, …). Cualquier otra cosa — `document`, `window`, `fetch`, literales string, punto y coma — se rechaza antes de ejecutar, así la expresión no puede salir de `Math.*`.
¿Qué unidad angular usan `sin` y demás?
Radianes, igual que el `Math.sin` de JavaScript. Usa `pi` para ángulos comunes — `sin(pi / 2)` es 1, `cos(pi)` es -1. Para convertir grados, multiplica por `pi / 180` antes de pasarlos.
¿Por qué mi cálculo enorme pierde precisión?
Los números JavaScript son doubles IEEE 754 — unos 15 dígitos decimales significativos. `0.1 + 0.2` da `0.30000000000000004`. Para mayor precisión (decimales financieros, factoriales sobre 20!, etc.) usa una herramienta o librería dedicada de precisión arbitraria.
¿Y variables o scripts multi-línea?
No soportado a propósito — mantener pequeña la superficie es lo que lo hace seguro de evaluar. Para matemática programable, usa un notebook Jupyter o calculadora de escritorio.

Herramientas relacionadas