Calculateur de GPA
Indiquez chaque cours avec sa note en lettre et ses crédits : un A et un B de 3 crédits chacun donnent 21 points de qualité sur 6 crédits, soit un GPA de 3,5. La moyenne est pondérée par les crédits, pas simple. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Calcule une moyenne pondérée cumulative (GPA) sur l'échelle standard 4.0 à partir d'une liste de cours, chacun avec une note en lettre et des crédits horaires, renvoyant le GPA pondéré, le total des crédits, les points de qualité et le nombre de cours.
La table de notes 4.0 et la pondération par crédits
Le calculateur convertit chaque note en lettre en points de qualité sur l'échelle standard 4.0 à l'aide d'une table fixe : A vaut 4.0, A- vaut 3.7, B+ vaut 3.3, B vaut 3.0, B- vaut 2.7, C+ vaut 2.3, C vaut 2.0, C- vaut 1.7, D+ vaut 1.3, D vaut 1.0 et F vaut 0.
Chaque entrée du tableau courses porte une valeur grade et une valeur credits ; le moteur multiplie les points de chaque note par ses crédits pour obtenir des points de qualité pondérés, les additionne, additionne les crédits, et divise pour produire un GPA pondéré par les crédits — et non une moyenne naïve des points de note.
Arrondi, décimales et crédits fractionnaires
La fonction auxiliaire calcule sign * Math.floor(abs(x) * 10^decimals + 0.5) / 10^decimals, de sorte qu'une valeur exactement au point médian s'arrondit toujours en s'éloignant de zéro. Le paramètre decimals contrôle la précision, vaut 2 par défaut et doit être un entier de 0 à 3 — passez 0 pour un GPA en nombre entier ou 3 pour une granularité plus fine lors de la comparaison de dossiers proches.
Ce que la calculatrice accepte ou refuse
La validation s'exécute avant toute arithmétique. courses doit être un tableau contenant entre 1 et 50 éléments, de sorte qu'une liste vide ou un lot surdimensionné échouent tous deux immédiatement et ne peuvent bloquer l'onglet. Chaque entrée doit être un objet ; une note hors de la table à onze valeurs déclenche 'grade inválido' (il n'y a aucun arrondi des lettres inconnues vers le seuil le plus proche), et une valeur credits manquante, non numérique, non finie ou nulle-ou-négative déclenche 'credits inválido'.
Un decimals hors de 0-3 déclenche 'decimals fuera de rango', et une entrée de premier niveau non objet est rejetée d'emblée.
Cas d’usage
Tableaux de bord étudiants
Recalculez un GPA de semestre ou cumulatif à l'instant où une note ou une valeur de crédit change.
Vérifications de bourse
Vérifiez si un GPA pondéré franchit un seuil avant d'approuver une demande.
Questions fréquentes
Quelle échelle de notes est utilisée ?
Une table fixe 4.0 de A (4.0) jusqu'à F (0), y compris les échelons plus/moins.
Le GPA est-il pondéré par les crédits ?
Oui. Les points de chaque note sont multipliés par ses crédits, additionnés, puis divisés par le total des crédits.
Les cours peuvent-ils avoir des crédits fractionnaires ?
Oui. credits peut être n'importe quel nombre fini positif, comme 1.5 pour un cours à demi-crédit.
Que sont les points de qualité ?
Ce sont les points de chaque note multipliés par les crédits du cours, puis additionnés. Divisé par le total des crédits, ce total donne le GPA, ce qui explique qu'un cours chargé en crédits pèse davantage dans la moyenne.
Que se passe-t-il si je saisis une note absente de l'échelle ?
Elle est refusée au lieu d'être arrondie à la lettre la plus proche. Seules les onze notes du barème sur 4.0, de A à F, sont acceptées, en majuscules ou en minuscules : a- et A- comptent pareil.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/dev/gpa-calculator \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"courses":[{"grade":"A","credits":3}]}'const res = await fetch("https://api.kit.forhosting.com/dev/gpa-calculator", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"courses": [
{
"grade": "A",
"credits": 3
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/gpa-calculator",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"courses": [
{
"grade": "A",
"credits": 3
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/gpa-calculator", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"courses":[{"grade":"A","credits":3}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"courses":[{"grade":"A","credits":3}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/gpa-calculator", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"courses": [
{
"grade": "A",
"credits": 3
}
]
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.gpa_calculator",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
La table de notes 4.0 et la pondération par crédits
La réponse renvoie gpa, total_credits (la somme de tous les crédits), quality_points (le total sommé des points de note) et courses_count. Avec un A sur 3 crédits et un B sur 3 crédits, quality_points vaut 21, total_credits vaut 6 et gpa vaut 3.5.
Arrondi, décimales et crédits fractionnaires
Les notes sont lues sans distinction de casse car l'entrée est mise en majuscules avant la recherche, de sorte que 'a-' et 'A-' sont équivalents. credits peut être n'importe quel nombre fini positif, y compris des poids fractionnaires comme 1.5, ce qui vous permet de modéliser des travaux pratiques et des séminaires à demi-crédit. total_credits est renvoyé comme la somme exacte des crédits, tandis que gpa et quality_points sont tous deux arrondis aux décimales choisies.
Cas d'intégration
Automatisation du secrétariat
Traitez par lots des listes de notes via l'API pour publier des GPA officiels de manière déterministe.
Questions techniques
Combien de cours puis-je soumettre ?
Entre 1 et 50 par requête ; en dehors de cette plage cela renvoie invalid_input.
Est-ce gratuit ?
Oui dans le widget de navigateur ; l'API exécute la même logique à partir de $0.002 par appel.