Outils
Guides

Calculatrice d'expressions

Vie

Évaluez sûrement une expression arithmétique avec + − × ÷ % ^ et parenthèses. Pas d'eval, pas d'exécution de code.

100 % côté client Sans backend
Supporte + − * / % ^ et (). Entrée pour évaluer.
Résultat —
Sur cette page

Qu’est-ce que cette calculatrice ?#

C’est une calculatrice arithmétique simple qui évalue une expression mathématique que vous saisissez sous forme de texte — (12 * 1.08) + 7 ou 2^10 % 256 — et vous donne le nombre. Il n’y a pas de boutons de fonction à picorer ; vous écrivez l’expression entière et appuyez sur une touche.

L’important, c’est la façon dont elle est construite. La plupart des calculatrices rapides sur le web trichent en confiant votre chaîne au eval() de JavaScript, qui exécute n’importe quel code — acceptable pour un jouet, laid dès que quelqu’un colle quelque chose de malin. Celle-ci non : elle exécute un analyseur récursif descendant écrit main qui n’accepte que les nombres, les parenthèses et les opérateurs + - * / % ^. Tout ce qui sort de cette grammaire est rejeté sur place. Le résultat est une calculatrice qui ne peut réellement pas exécuter de code, ce qui est exactement pourquoi on peut y coller en toute sécurité.

Comment l’utiliser#

  1. Saisissez votre expression dans la zone Entrée. Les espaces sont ignorés, donc 1+2 et 1 + 2 sont identiques.
  2. Opérateurs : + - * / pour les quatre bases, % pour le modulo (le reste), ^ pour la puissance. Les parenthèses ( ) groupent. Le moins unaire fonctionne, donc -5 + 3 vaut -2.
  3. Les décimales et la notation scientifique vont très bien : 0.5, 1e3 (qui vaut 1000), 2.5e-2.
  4. Cliquez sur Évaluer (ou appuyez sur Entrée). La ligne Résultat affiche le nombre, ou un message en ligne nommant le problème — Division par zéro, Caractère inattendu, Parenthèses déséquilibrées, etc. — pour que vous puissiez corriger l’expression au lieu de deviner ce qui a mal tourné.
  5. La poussière du flottant binaire est nettoyée automatiquement, donc 0.1 + 0.2 affiche 0.3, et non 0.30000000000000004.

Caractéristiques principales#

  • Pas de eval, pas de new Function, pas d’identifiants. Seuls les nombres et sept caractères d’opérateur sont acceptés — une grammaire entièrement bornée, pas de l’exécution de code arbitraire.
  • Priorité des opérateurs correcte (PEMDAS) : parenthèses, puis ^, puis * / %, puis + -.
  • Puissance associative à droite. 2^3^2 s’évalue comme les mathématiciens l’écrivent (voir l’exemple commenté).
  • Notation scientifique (6.022e23) et modulo (17 % 5) pour les vrais calculs de coin de table.
  • Erreurs conviviales et précises qui nomment la cause (division par zéro, expression tronquée, nombre invalide) avec la position fautive, au lieu d’un NaN silencieux.

Exemple commenté#

Trois expressions qui montrent chacune un comportement différent. Collez-les l’une après l’autre.

Priorité des opérateurs et regroupement.

(1 + 2) * 3 ^ 2

Résultat : 27. Les parenthèses forcent 1 + 2 = 3 d’abord ; puis 3 ^ 2 est évalué avant la multiplication (la puissance lie plus serré que *), donnant 9 ; enfin 3 * 9 = 27. Sans les parenthèses, 1 + 2 * 3 ^ 2 vaudrait 1 + 18 = 19.

Puissance associative à droite.

2 ^ 3 ^ 2

Résultat : 512, pas 64. La puissance s’associe à droite, donc c’est 2 ^ (3 ^ 2) = 2 ^ 9 = 512. Si vous vouliez vraiment (2 ^ 3) ^ 2 = 64, écrivez les parenthèses.

Poussière binaire retirée.

0.1 + 0.2

Résultat : 0.3. La somme flottante binaire brute est 0.30000000000000004 ; le formateur l’arrondit à un nombre sensé de chiffres significatifs pour que le résultat se lise comme un humain s’y attend.

FAQ#

Pourquoi ne puis-je pas utiliser sin, log, sqrt ou pi ?#

Parce que ce sont des identifiants, et les identifiants ne font délibérément pas partie de la grammaire. Tout nom est rejeté comme un Caractère inattendu — c’est la ligne qui empêche la calculatrice d’exécuter du code. Si vous avez besoin de sqrt(16), réécrivez-le en 16 ^ 0.5 ; pour log et sin, utilisez une calculatrice scientifique.

2^3^2 donne-t-il 512 ou 64 ?#

512. L’opérateur ^ est associatif à droite, ce qui correspond à la convention des mathématiques et de la plupart des opérateurs de puissance des langages de programmation. 2^3^2 s’analyse en 2^(3^2). Pour obtenir 64, écrivez (2^3)^2.

Que fait l’opérateur % ici ?#

C’est le modulo — le reste après la division entière — pas « pourcentage ». 17 % 5 vaut 2, parce que 17 divisé par 5 laisse un reste de 2. Pratique pour « ce nombre est-il pair ? » (n % 2), ramener une valeur dans un intervalle, ou l’arithmétique d’horloge. Il a la même priorité que * et /.

Mon expression est-elle envoyée à un serveur ?#

Non. L’analyse et l’évaluation se font entièrement dans votre navigateur avec un analyseur écrit main — il n’y a pas de backend, et l’entrée ne quitte jamais la page.