Une calculatrice scientifique moderne et élégante développée en JavaScript vanilla avec interface responsive et historique des calculs.
- ➕ Addition
- ➖ Soustraction
- ✖️ Multiplication
- ➗ Division
- 🔢 Racine carrée (√)
- 🔢 Puissance (x²)
- 🥧 Pi (π = 3.14159...)
- 📊 Pourcentage (%)
- 📋 Historique des calculs (50 derniers calculs)
- 💾 Sauvegarde locale (localStorage)
- ⌨️ Support clavier complet
- 📱 Design responsive (mobile-friendly)
- 🎨 Interface moderne avec animations
- 🔢 Notation scientifique (grands nombres)
- HTML5 : Structure sémantique
- CSS3 : Design moderne avec gradients et animations
- JavaScript ES6 : Logique applicative
- LocalStorage API : Persistance des données
git clone https://github.com/Adam-Blf/Calculator-JS.git
cd Calculator-JSOuvrez simplement le fichier index.html dans votre navigateur :
# Windows
start index.html
# macOS
open index.html
# Linux
xdg-open index.htmlOu utilisez un serveur local :
# Python 3
python -m http.server 8000
# Node.js (http-server)
npx http-serverPuis ouvrez http://localhost:8000
- Saisir des nombres : Cliquez sur les boutons numériques 0-9
- Choisir une opération : Cliquez sur +, −, ×, ÷
- Calculer : Cliquez sur le bouton
= - Effacer : Bouton
Cpour tout effacer - Supprimer : Bouton
⌫pour supprimer le dernier chiffre - Historique : Cliquez sur "📋 Historique" pour voir les calculs précédents
| Touche | Action |
|---|---|
0-9 |
Saisir un chiffre |
. |
Point décimal |
+ - * / |
Opérations |
Enter ou = |
Calculer le résultat |
Escape |
Effacer tout |
Backspace |
Supprimer le dernier chiffre |
- √ (Racine carrée) : Calcule la racine carrée du nombre affiché
- x² (Puissance 2) : Calcule le carré du nombre
- π (Pi) : Insère la valeur de π (3.14159...)
- % (Pourcentage) : Divise le nombre par 100
- 📋 Afficher : Cliquez sur "Historique" pour ouvrir le panneau
- 🔄 Réutiliser : Cliquez sur un calcul pour réutiliser son résultat
- 🗑️ Effacer : Cliquez sur la poubelle pour vider l'historique
- 💾 Sauvegarde automatique : Les 50 derniers calculs sont sauvegardés
Calculator-JS/
│
├── index.html # Structure HTML de la calculatrice
├── style.css # Styles CSS avec animations
├── script.js # Logique JavaScript
├── README.md # Documentation (ce fichier)
└── .gitignore # Fichiers à ignorer par Git
- Design avec dégradés violet/bleu
- Boutons avec effets de hover et d'animation
- Affichage avec historique en temps réel
- Panel d'historique glissant
- 🖥️ Desktop : Panneau latéral pour l'historique
- 📱 Mobile : Modal centré pour l'historique
- 🔄 Adaptabilité : S'ajuste à toutes les tailles d'écran
- ❌ Division par zéro détectée
- ❌ Racine carrée de nombres négatifs impossible
- 🔢 Notation scientifique pour grands nombres
let currentValue = '0'; // Valeur affichée
let previousValue = ''; // Valeur précédente pour opération
let operation = null; // Opération en cours (+, -, *, /)
let shouldResetScreen = false; // Flag pour réinitialiser l'écran
let calculationHistory = []; // Historique des calculsappendNumber(number): Ajoute un chiffre à la valeur actuellechooseOperation(operator): Sélectionne l'opération à effectuercalculate(): Effectue le calcul et met à jour l'affichageclear(): Réinitialise la calculatriceaddToHistory(calculation): Ajoute un calcul à l'historiquesaveHistory()/loadHistory(): Sauvegarde/charge depuis localStorage
12 + 8 = 20
25 → √ = 5
5 → x² = 25
200 → % = 2 (200 ÷ 100)
π → x² ≈ 9.8696
| Navigateur | Version Minimale |
|---|---|
| Chrome | 90+ |
| Firefox | 88+ |
| Safari | 14+ |
| Edge | 90+ |
| Opera | 76+ |
- Mode sombre/clair
- Fonctions trigonométriques (sin, cos, tan)
- Fonction logarithmique
- Puissances personnalisées (xⁿ)
- Export de l'historique en CSV
- Thèmes personnalisables
- Mode RPN (Reverse Polish Notation)
L'historique est sauvegardé dans le localStorage du navigateur :
localStorage.setItem('calculatorHistory', JSON.stringify(history));Nombres > 12 chiffres affichés en notation scientifique :
return parseFloat(number).toExponential(6);Les résultats sont arrondis à 8 décimales pour éviter les erreurs de virgule flottante :
Math.round(number * 100000000) / 100000000;Les contributions sont les bienvenues ! Pour contribuer :
- Fork le projet
- Créez une branche (
git checkout -b feature/AmazingFeature) - Committez vos changements (
git commit -m 'Add AmazingFeature') - Pushez vers la branche (
git push origin feature/AmazingFeature) - Ouvrez une Pull Request
Ce projet est open source. Libre d'utilisation pour des projets personnels ou éducatifs.
Adam Beloucif
- GitHub: @Adam-Blf
- Portfolio: Voir mes autres projets
- Interface inspirée par les calculatrices modernes iOS/Android
- Design basé sur les principes Material Design
- Merci à la communauté JavaScript pour les meilleures pratiques
⭐ Si vous aimez ce projet, n'oubliez pas de lui donner une étoile sur GitHub ! ⭐