Calculatrice.com

Vérification · version du

Vérifier un calcul, reproduire un exemple

Un résultat est plus utile lorsque ses entrées, sa méthode et ses limites peuvent être contrôlées. Cette page publie les cas ajoutés lors de la révision du 15 septembre 2026, avec leurs résultats attendus et un moyen de les recalculer.

83 nouveaux cas réussis. Ils complètent les 562 tests existants. Les tests ont été exécutés sur les fichiers de cette version avant sa mise en ligne. Ils vérifient des cas définis ; ils ne prouvent pas l’absence de toute erreur possible et ne constituent pas une validation médicale, juridique ou financière.

Des cas de référence réutilisables

Les fichiers contiennent les entrées, le moteur, le résultat attendu ou le refus attendu, la tolérance numérique et une référence. Ils ne contiennent aucune donnée d’utilisateur.

Référence proposée : Calculatrice.com, « Cas de référence », version 2026-09-15, identifiant du cas et lien vers cette page. La réutilisation de ces fichiers avec attribution est autorisée. Toute modification doit être signalée.

Ce qui a été corrigé

  • La saisie conserve le signe négatif après une multiplication ou une puissance.
  • Un chiffre après « = » commence un nouveau calcul ; un opérateur poursuit le résultat avec sa précision interne.
  • Les petits nombres non nuls ne sont plus ramenés arbitrairement à zéro. La notation exponentielle peut être reprise.
  • L’historique ne conserve que les calculs validés, y compris zéro. Les opérations peuvent être reprises, exportées ou imprimées.
  • Les jours ouvrés et les échéances disposent de calendriers français, de jours fériés travaillés et d’exclusions personnalisées.
  • Le salaire après impôt utilise le net imposable renseigné. Sans cette assiette et avec un taux positif, le montant reste à préciser.
  • La prime d’activité propose les seuils de bonification de juin 2026 et le scénario daté d’avril–mai ; le seuil de versement est appliqué.
  • Les arrondis de colocation et de participation des aides au logement suivent les règles décrites. Les situations hors périmètre du modèle sont orientées vers la CAF.
  • Une valeur numérique effacée est signalée ; elle ne devient pas implicitement zéro.

Comment lire ces vérifications ?

Les cas arithmétiques ont une valeur attendue explicite. Une comparaison numérique accepte l’écart indiqué dans le fichier JSON : le maximum de la tolérance absolue et de la tolérance relative multipliée par la valeur attendue. Les petits nombres utilisent une tolérance absolue nulle pour qu’un zéro incorrect ne puisse pas réussir le test.

Les nombres JavaScript sont en double précision. L’affichage est arrondi, sans remplacer la valeur interne. Au-delà de 9 007 199 254 740 991, tous les entiers ne sont pas représentables exactement : le cas « 1e21 + 1 » illustre cette limite, il ne prouve pas une addition entière exacte. La convention du moteur donne 0^0 = 1. Les pourcentages de la calculatrice simple suivent la convention 200 + 10 % = 220.

Les séquences de saisie testent l’état utilisé par l’interface. En complément, 37 contrôles locaux exécutent les gestionnaires de boutons, clavier, saisie et historique dans un DOM simulé. Ces contrôles ne remplacent pas une vérification visuelle sur appareils réels. Les tests des moteurs ne vérifient ni l’éligibilité administrative d’une personne ni l’adéquation médicale d’un résultat.

Sources des corrections datées

Les 83 cas et leurs résultats

Vous pouvez relancer les cas dans votre navigateur. Seul le fichier de cas est téléchargé ; aucun résultat n’est envoyé.

Résultat de préparation : 83 cas réussis sur 83.

CasEntrées et contexteAttenduVérification
C0012*-3
2*-3
-6Réussi dans la version préparée
C0022^-2
2^-2
0.25Réussi dans la version préparée
C003-2^2
-2^2
-4Réussi dans la version préparée
C004(-2)^2
(-2)^2
4Réussi dans la version préparée
C0052^3^2
2^3^2
512Réussi dans la version préparée
C006200+10%
200+10%
220Réussi dans la version préparée
C007200+-10%
200+-10%
180Réussi dans la version préparée
C008200-10%
200-10%
180Réussi dans la version préparée
C009100*10%
100*10%
10Réussi dans la version préparée
C0101e-16
1e-16
1e-16Réussi dans la version préparée
C0111/1e-16
1/1e-16
1e+16Réussi dans la version préparée
C0121e21+1
1e21+1
1e+21Réussi dans la version préparée
C0130.1+0.2
0.1+0.2
0.3Réussi dans la version préparée
C014(12+8)*3
(12+8)*3
60Réussi dans la version préparée
C0151-1
1-1
0Réussi dans la version préparée
C0160^0
0^0
1Réussi dans la version préparée
C017Refus : 1/0
1/0
Erreur contrôléeRéussi dans la version préparée
C018Refus : 1..2
1..2
Erreur contrôléeRéussi dans la version préparée
C019Refus : 2+
2+
Erreur contrôléeRéussi dans la version préparée
C020Refus : (2+3
(2+3
Erreur contrôléeRéussi dans la version préparée
C021Refus : 2(3)
2(3)
Erreur contrôléeRéussi dans la version préparée
C022Refus : 999999999999999999999999999999…
99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
Erreur contrôléeRéussi dans la version préparée
C023Refus : 1e309
1e309
Erreur contrôléeRéussi dans la version préparée
C024sin(30) — deg
sin(30)
0.5Réussi dans la version préparée
C025cos(60) — deg
cos(60)
0.5Réussi dans la version préparée
C026sin(pi/2) — rad
sin(pi/2)
1Réussi dans la version préparée
C027sqrt(81) — deg
sqrt(81)
9Réussi dans la version préparée
C0281e-16 — deg
1e-16
1e-16Réussi dans la version préparée
C0291/1e-16 — deg
1/1e-16
1e+16Réussi dans la version préparée
C0302^-2 — deg
2^-2
0.25Réussi dans la version préparée
C031ncr(49;6) — deg
ncr(49;6)
13983816Réussi dans la version préparée
C032log(1000) — deg
log(1000)
3Réussi dans la version préparée
C0330xFF+1 — deg
0xFF+1
256Réussi dans la version préparée
C034Refus scientifique : 1/0
1/0
Erreur contrôléeRéussi dans la version préparée
C035Refus scientifique : sqrt(-1)
sqrt(-1)
Erreur contrôléeRéussi dans la version préparée
C036Refus scientifique : tan(90)
tan(90)
Erreur contrôléeRéussi dans la version préparée
C037Refus scientifique : 9999999999999999999999999
999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
Erreur contrôléeRéussi dans la version préparée
C038Un chiffre après = commence un nouveau calcul (simple)
[["append","2+3"],["commit"],["append","4"],["commit"]]
4Réussi dans la version préparée
C039Un opérateur après = reprend le résultat (simple)
[["append","2+3"],["commit"],["append","*2"],["commit"]]
10Réussi dans la version préparée
C040La précision de 1/3 est conservée (simple)
[["append","1/3"],["commit"],["append","*3"],["commit"]]
1Réussi dans la version préparée
C041Un résultat exponentiel peut être repris (simple)
[["append","10^21"],["commit"],["append","/10"],["commit"]]
1e+20Réussi dans la version préparée
C042Un signe négatif après multiplication est conservé (simple)
[["append","2"],["append","*"],["append","-"],["append","3"],["commit"]]
-6Réussi dans la version préparée
C043Effacer puis recommencer (simple)
[["append","42"],["commit"],["clear"],["append","8"],["commit"]]
8Réussi dans la version préparée
C044Corriger la formule après = (simple)
[["append","12+3"],["commit"],["backspace"],["append","4"],["commit"]]
16Réussi dans la version préparée
C045Changer le signe avant saisie (simple)
[["wrap","-"],["append","3"],["commit"]]
-3Réussi dans la version préparée
C046Un chiffre après = commence un nouveau calcul (scientifique)
[["append","2+3"],["commit"],["append","4"],["commit"]]
4Réussi dans la version préparée
C047Un opérateur après = reprend le résultat (scientifique)
[["append","2+3"],["commit"],["append","*2"],["commit"]]
10Réussi dans la version préparée
C048La précision de 1/3 est conservée (scientifique)
[["append","1/3"],["commit"],["append","*3"],["commit"]]
1Réussi dans la version préparée
C049Un résultat exponentiel peut être repris (scientifique)
[["append","10^21"],["commit"],["append","/10"],["commit"]]
1e+20Réussi dans la version préparée
C050Un signe négatif après multiplication est conservé (scientifique)
[["append","2"],["append","*"],["append","-"],["append","3"],["commit"]]
-6Réussi dans la version préparée
C051Effacer puis recommencer (scientifique)
[["append","42"],["commit"],["clear"],["append","8"],["commit"]]
8Réussi dans la version préparée
C052Corriger la formule après = (scientifique)
[["append","12+3"],["commit"],["backspace"],["append","4"],["commit"]]
16Réussi dans la version préparée
C053Changer le signe avant saisie (scientifique)
[["wrap","-"],["append","3"],["commit"]]
-3Réussi dans la version préparée
C054Ans reste le dernier résultat validé
[["append","2+3"],["commit"],["append","ans+2"],["commit"],["toggleMode"],["commit"]]
7Réussi dans la version préparée
C055Mai 2026 : 21 jours lundi–vendredi, moins 4 fériés
{"calendar":"fr","workweek":"monFri","holidays":"","startDate":"2026-05-01","endDate":"2026-05-31"}
17Réussi dans la version préparée
C056Mai 2026 sans exclusions automatiques
{"calendar":"none","workweek":"monFri","holidays":"","startDate":"2026-05-01","endDate":"2026-05-31"}
21Réussi dans la version préparée
C057Lundi de Pentecôte travaillé
{"calendar":"fr","workweek":"monFri","holidays":"","startDate":"2026-05-01","endDate":"2026-05-31","workingHolidays":"2026-05-25"}
18Réussi dans la version préparée
C058Pont ajouté et exclusion doublonnée
{"calendar":"fr","workweek":"monFri","holidays":"2026-05-15,2026-05-01,2026-05-01","startDate":"2026-05-01","endDate":"2026-05-31"}
16Réussi dans la version préparée
C059Exclusion hors plage sans effet
{"calendar":"fr","workweek":"monFri","holidays":"2026-06-01","startDate":"2026-05-01","endDate":"2026-05-31"}
17Réussi dans la version préparée
C060Vendredi saint selon la commune
{"calendar":"alsace-friday","workweek":"monFri","holidays":"","startDate":"2026-04-03","endDate":"2026-04-06"}
0Réussi dans la version préparée
C061Alsace-Moselle sans vendredi saint
{"calendar":"alsace","workweek":"monFri","holidays":"","startDate":"2026-04-03","endDate":"2026-04-06"}
1Réussi dans la version préparée
C062Martinique : commémoration du 22 mai
{"calendar":"martinique","workweek":"monFri","holidays":"","startDate":"2026-05-22","endDate":"2026-05-22"}
0Réussi dans la version préparée
C063Férié tombant un samedi, semaine sur 5 jours
{"calendar":"fr","workweek":"monFri","holidays":"","startDate":"2026-08-10","endDate":"2026-08-16"}
5Réussi dans la version préparée
C064Férié tombant un samedi, semaine sur 6 jours
{"calendar":"fr","workweek":"monSat","holidays":"","startDate":"2026-08-10","endDate":"2026-08-16"}
5Réussi dans la version préparée
C065Échéance depuis 2026-05-13 : 1 jour
{"calendar":"fr","workweek":"monFri","holidays":"","startDate":"2026-05-13","amount":1}
2026-05-15Réussi dans la version préparée
C066Échéance depuis 2026-05-15 : -1 jour
{"calendar":"fr","workweek":"monFri","holidays":"","startDate":"2026-05-15","amount":-1}
2026-05-13Réussi dans la version préparée
C067Échéance depuis 2026-05-14 : 0 jour
{"calendar":"fr","workweek":"monFri","holidays":"","startDate":"2026-05-14","amount":0}
2026-05-14Réussi dans la version préparée
C068Échéance depuis 2027-03-26 : 1 jour
{"calendar":"fr","workweek":"monFri","holidays":"","startDate":"2027-03-26","amount":1}
2027-03-30Réussi dans la version préparée
C069Calendrier : entrée impossible refusée
{"calendar":"fr","workweek":"monFri","startDate":"2026-02-30","endDate":"2026-03-05"}
Erreur contrôléeRéussi dans la version préparée
C070Calendrier : entrée impossible refusée
{"calendar":"fr","workweek":"monFri","startDate":"2026-05-01","endDate":"2026-05-03","holidays":"2026-02-30"}
Erreur contrôléeRéussi dans la version préparée
C071Calendrier : entrée impossible refusée
{"calendar":"fr","workweek":"monFri","startDate":"2100-01-01","endDate":"2100-01-02"}
Erreur contrôléeRéussi dans la version préparée
C072Net imposable distinct du net à payer
{"direction":"grossToNet","amount":3000,"employeeRate":22,"withholdingRate":5,"employerRate":42,"paidMonths":12,"taxableNet":2450}
2217.5Réussi dans la version préparée
C073PAS inconnu sans assiette fiscale
{"direction":"grossToNet","amount":3000,"employeeRate":22,"withholdingRate":5,"employerRate":42,"paidMonths":12}
Non déterminéRéussi dans la version préparée
C074PAS nul sans assiette
{"direction":"grossToNet","amount":3000,"employeeRate":22,"withholdingRate":0,"employerRate":42,"paidMonths":12}
2340Réussi dans la version préparée
C075Bonification nulle à 726,29 € depuis juin
{"couple":"no","dependents":0,"applicantIncome":726.29,"partnerIncome":0,"otherResources":0,"housing":"none","scope":"standard"}
0Réussi dans la version préparée
C076Bonification maximale à 1 698,78 € depuis juin
{"couple":"no","dependents":0,"applicantIncome":1698.78,"partnerIncome":0,"otherResources":0,"housing":"none","scope":"standard"}
240.63Réussi dans la version préparée
C077Prime sous 15 € non versée
{"couple":"no","dependents":0,"applicantIncome":0,"partnerIncome":0,"otherResources":630,"housing":"none","scope":"standard"}
0Réussi dans la version préparée
C078Avril–mai conservé et daté
{"couple":"no","dependents":0,"applicantIncome":1500,"partnerIncome":0,"otherResources":0,"housing":"none","scope":"standard","period":"2026-04"}
236.42914109395736Réussi dans la version préparée
C079Situation hors périmètre CAF refusée
{"couple":"no","dependents":0,"applicantIncome":1500,"partnerIncome":0,"otherResources":0,"housing":"none","scope":"other"}
Erreur contrôléeRéussi dans la version préparée
C080Plafond colocation personne seule zone 1
{"zone":"1","couple":"no","dependents":0,"shared":"yes","annualResources":0,"rent":300,"scope":"standard"}
249.86Réussi dans la version préparée
C081Plafond colocation personne seule zone 2
{"zone":"2","couple":"no","dependents":0,"shared":"yes","annualResources":0,"rent":300,"scope":"standard"}
217.76Réussi dans la version préparée
C082Plafond colocation personne seule zone 3
{"zone":"3","couple":"no","dependents":0,"shared":"yes","annualResources":0,"rent":300,"scope":"standard"}
204.09Réussi dans la version préparée
C083Champ salaire vide refusé
{"direction":"grossToNet","amount":3000,"employeeRate":" ","withholdingRate":5,"employerRate":42,"paidMonths":12}
Erreur contrôléeRéussi dans la version préparée

24 exemples à reproduire sur les outils

Chaque réponse ci-dessous indique ses hypothèses sur la page concernée. Le bouton « Tester cet exemple » remplit le formulaire avec les mêmes valeurs. Les cas couvrent les fractions, les moyennes, les équations, les prêts, les rendements et les conventions de dates.

Télécharger les 24 exemples avec entrées et résultats attendus (JSON)

Ces 24 exemples ont été contrôlés dans la version préparée.

Révision complémentaire du 15 septembre 2026 : petits coefficients et racines d’équations, mémoire de calcul, échéancier complet, perte totale d’un placement et catégories d’IMC avant arrondi. Ces contrôles sont complémentaires aux 83 cas présentés plus haut.

Formules, dates et conversions : 30 cas limites

Révision du 15 septembre 2026 : la notation scientifique et les petits diviseurs sont reconnus sur le graphique ; les dates impossibles sont refusées ; une conversion ne demande que les champs utiles au sens choisi. Les paramètres et attentes ci-dessous permettent de contrôler ces points.

Les attentes sont lisibles sans lancer les tests.

Lire les entrées, résultats attendus et explications
Cas limites — version 20260915d
Cas et outilEntréesAttente et raisonExécution
Notation scientifique : 1e-3 × x{"expression": "1e-3*x", "x": 2}0,002
1e-3 vaut 0,001 ; pour x = 2, le résultat vaut 0,002.
Non exécuté
Notation scientifique avec E majuscule{"expression": "2E+3", "x": 0}2000
2E+3 représente 2 × 10³.
Non exécuté
Division par un petit nombre non nul{"expression": "1/0.0000000000001", "x": 0}10000000000000,0
10⁻¹³ est non nul : son inverse vaut 10¹³.
Non exécuté
Constante e et multiplication implicite{"expression": "2e", "x": 0}5,43656365691809
2e conserve le sens 2 × e ; un exposant chiffré distingue 2e3.
Non exécuté
Plusieurs arguments séparés par un point-virgule{"expression": "min(2;-3;4)", "x": 0}-3
Le minimum de 2, −3 et 4 est −3.
Non exécuté
Deux arguments pour pow{"expression": "pow(2;3)", "x": 0}8
pow(2;3) calcule 2³.
Non exécuté
Argument surnuméraire de sin refusé{"expression": "sin(30;90)", "x": 0, "mode": "deg"}Erreur contrôlée
sin attend un seul angle ; le deuxième ne doit pas être ignoré.
Non exécuté
Troisième argument de pow refusé{"expression": "pow(2;3;4)", "x": 0}Erreur contrôlée
pow attend une base et un exposant, soit deux arguments.
Non exécuté
Minimum sans valeur refusé{"expression": "min()", "x": 0}Erreur contrôlée
Le minimum nécessite au moins une valeur.
Non exécuté
Deux séparateurs décimaux refusés{"expression": "1.2.3", "x": 0}Erreur contrôlée
1.2.3 n’est pas un nombre ; aucune multiplication n’est déduite.
Non exécuté
Nombre hors domaine refusé{"expression": "1e999", "x": 0}Erreur contrôlée
1e999 dépasse le domaine des nombres flottants utilisés.
Non exécuté
Formule trop longue refusée sans troncature{"expression": "1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1", "x": 0}Erreur contrôlée
La limite est de 160 caractères ; la formule entière est refusée au-delà.
Non exécuté
Cosécante d’un petit angle non nul{"expression": "csc(1e-13)", "x": 0}10000000000000,0
En radians, sin(10⁻¹³) est proche de 10⁻¹³ : son inverse est proche de 10¹³.
Non exécuté
Tangente à 90 degrés refusée{"expression": "tan(90)", "x": 0, "mode": "deg"}Erreur contrôlée
La tangente n’est pas définie à un quart de tour.
Non exécuté
Cosécante à pi radians refusée{"expression": "csc(pi)", "x": 0}Erreur contrôlée
sin(pi) vaut mathématiquement zéro ; son inverse n’est pas défini.
Non exécuté
Priorité d’une puissance négative{"expression": "2^-2", "x": 0}0,25
2⁻² = 1/4.
Non exécuté
Division par zéro refusée{"expression": "1/0", "x": 0}Erreur contrôlée
Un diviseur exactement nul reste interdit.
Non exécuté
29 février hors année bissextile refusé{"params": {"direction": "toTimestamp", "dateTime": "2025-02-29T12:00", "zone": "utc"}}Erreur contrôlée
2025 n’est pas bissextile ; le 29 février ne doit pas devenir le 1er mars.
Non exécuté
31 avril refusé{"params": {"direction": "toTimestamp", "dateTime": "2026-04-31T12:00", "zone": "utc"}}Erreur contrôlée
Avril comporte 30 jours ; le 31 avril ne doit pas devenir le 1er mai.
Non exécuté
Heure 24:00 refusée{"params": {"direction": "toTimestamp", "dateTime": "2026-01-01T24:00", "zone": "utc"}}Erreur contrôlée
Le formulaire attend une heure de 00:00 à 23:59 ; saisir le lendemain à 00:00.
Non exécuté
Minute 60 refusée{"params": {"direction": "toTimestamp", "dateTime": "2026-01-01T12:60", "zone": "utc"}}Erreur contrôlée
Les minutes vont de 00 à 59.
Non exécuté
Décalage horaire invalide refusé{"params": {"direction": "toTimestamp", "dateTime": "1970-01-01T00:00+25:00", "zone": "utc"}}Erreur contrôlée
Le décalage +25:00 dépasse le domaine accepté.
Non exécuté
29 février bissextile conservé{"params": {"direction": "toTimestamp", "dateTime": "2024-02-29T12:00", "zone": "utc"}}2024-02-29T12:00:00.000Z
2024 est bissextile : la date reste le 29 février.
Non exécuté
Un décalage explicite conserve l’instant{"params": {"direction": "toTimestamp", "dateTime": "1970-01-01T01:00+01:00", "zone": "utc"}}0
01:00 avec le décalage +01:00 correspond à 00:00 UTC.
Non exécuté
Année 0099 conservée{"params": {"direction": "toTimestamp", "dateTime": "0099-01-01T00:00", "zone": "utc"}}0099-01-01T00:00:00.000Z
Une année sur quatre chiffres n’est pas réinterprétée comme 1999.
Non exécuté
Seconde négative arrondie vers le bas{"params": {"direction": "toTimestamp", "dateTime": "1969-12-31T23:59:59.500Z", "zone": "utc"}}-1
−0,5 seconde est ramenée à −1 seconde entière, conformément à la convention affichée.
Non exécuté
Allure sans vitesse saisie{"params": {"direction": "forward", "paceMinutes": 5, "paceSeconds": 0}}12
60 ÷ 5 = 12 km/h ; la vitesse est le résultat, pas une entrée obligatoire.
Non exécuté
Vitesse sans allure saisie{"params": {"direction": "reverse", "speed": 12}}5
60 ÷ 12 = 5 min/km ; les minutes et secondes ne sont pas des entrées obligatoires.
Non exécuté
Champ inactif sans effet sur le calcul{"params": {"direction": "forward", "paceMinutes": 5, "paceSeconds": 0, "speed": ""}}12
Dans ce sens, seule l’allure est utilisée ; une ancienne vitesse vide n’empêche pas le calcul.
Non exécuté
Allure active manquante refusée{"params": {"direction": "forward", "paceMinutes": "", "paceSeconds": 0}}Erreur contrôlée
Les minutes doivent être renseignées lorsque l’allure est l’entrée.
Non exécuté

Les dates suivent le format date-heure local de HTML. Une heure locale inexistante lors du passage à l’heure d’été est refusée. Lors du retour à l’heure d’hiver, une heure répétée est interprétée selon la première occurrence retenue par le navigateur ; UTC permet de désigner un instant sans ambiguïté dans le convertisseur Unix.

Repères par rubrique

Les 40 exemples expliqués des pages de vérification (JSON) et les 130 repères de conversion (JSON) complètent ces cas. Chaque repère de conversion indique son unité, sa convention, son arrondi et la page qui en donne les sources. Leur réutilisation suit les conditions de citation du site.

Signaler une erreur

Indiquez la page, les entrées, le résultat obtenu et le résultat attendu à [email protected]. N’envoyez pas de données personnelles sensibles. La méthode de correction et la responsabilité éditoriale sont publiques.