Calcolatore GPA
Indichi ogni corso con il voto in lettere e i crediti: una A e una B da 3 crediti ciascuna danno 21 punti di qualità su 6 crediti, cioè un GPA di 3,5. La media è ponderata per crediti, non è una media semplice dei voti. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Calcola una media dei voti (GPA) sulla scala standard 4.0 a partire da un elenco di corsi, ciascuno con un voto in lettera e crediti formativi, restituendo il GPA ponderato, i crediti totali, i punti qualità e il numero di corsi.
La tabella dei voti 4.0 e la ponderazione per crediti
Il calcolatore converte ogni voto in lettera in punti qualità sulla scala standard 4.0 usando una tabella fissa: A è 4.0, A- è 3.7, B+ è 3.3, B è 3.0, B- è 2.7, C+ è 2.3, C è 2.0, C- è 1.7, D+ è 1.3, D è 1.0, e F è 0.
Ogni voce dell'array courses porta un valore grade e uno credits; il motore moltiplica i punti di ogni voto per i suoi crediti per ottenere i punti qualità ponderati, li somma, somma i crediti e divide per produrre un GPA ponderato sui crediti — non una media ingenua dei punti dei voti.
Arrotondamento, decimali e crediti frazionari
La funzione ausiliaria calcola sign * Math.floor(abs(x) * 10^decimals + 0.5) / 10^decimals, così che un valore esattamente al punto medio arrotondi sempre allontanandosi da zero. Il parametro decimals controlla la precisione, vale 2 per impostazione predefinita e deve essere un intero da 0 a 3 — passi 0 per un GPA a numero intero o 3 per una granularità più fine quando confronta record ravvicinati.
Cosa accetta e cosa rifiuta il calcolatore
La validazione viene eseguita prima di qualsiasi calcolo. courses deve essere un array che contiene tra 1 e 50 elementi, così che un elenco vuoto o un lotto sovradimensionato falliscano entrambi subito e non possano bloccare la scheda.
Ogni voce deve essere un oggetto; un voto fuori dalla tabella a undici valori solleva 'grade inválido' (non c'è alcun arrotondamento di lettere sconosciute al valore più vicino), e un valore credits mancante, non numerico, non finito o pari o inferiore a zero solleva 'credits inválido'. decimals fuori da 0-3 solleva 'decimals fuera de rango', e un input di livello superiore non-oggetto viene respinto senz'altro.
Casi d'uso
Dashboard per studenti
Ricalcoli un GPA di semestre o cumulativo nell'istante in cui cambia un voto o un valore di credito.
Verifiche per borse di studio
Verifichi se un GPA ponderato supera una soglia prima di approvare una domanda.
Domande frequenti
Quale scala dei voti viene usata?
Una tabella fissa 4.0 da A (4.0) fino a F (0), inclusi i gradini più/meno.
Il GPA è ponderato sui crediti?
Sì. I punti di ogni voto vengono moltiplicati per i suoi crediti, sommati, poi divisi per i crediti totali.
I corsi possono avere crediti frazionari?
Sì. credits può essere qualsiasi numero finito positivo, come 1.5 per un corso da mezzo credito.
Cosa sono i punti di qualità?
Sono i punti di ogni voto moltiplicati per i crediti del corso e poi sommati. Dividendo quel totale per i crediti totali si ottiene il GPA, ed è per questo che un corso con molti crediti pesa di più sulla media.
Cosa succede se inserisco un voto che non è nella scala?
Viene rifiutato invece di essere arrotondato alla lettera più vicina. Sono accettati solo gli undici voti della tabella su 4.0, dalla A alla F, in maiuscolo o minuscolo, quindi a- e A- valgono uguale.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo 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)Esempio di richiesta
{
"courses": [
{
"grade": "A",
"credits": 3
}
]
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.gpa_calculator",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
La tabella dei voti 4.0 e la ponderazione per crediti
La risposta restituisce gpa, total_credits (la somma di tutti i crediti), quality_points (il totale sommato dei punti dei voti) e courses_count. Con una A su 3 crediti e una B su 3 crediti, quality_points è 21, total_credits è 6 e gpa è 3.5.
Arrotondamento, decimali e crediti frazionari
I voti vengono letti senza distinzione tra maiuscole e minuscole perché l'input viene portato in maiuscolo prima della consultazione, così che 'a-' e 'A-' siano equivalenti. credits può essere qualsiasi numero finito positivo, inclusi pesi frazionari come 1.5, permettendole di modellare laboratori e seminari da mezzo credito. total_credits viene restituito come la somma esatta dei crediti, mentre gpa e quality_points sono entrambi arrotondati ai decimali scelti.
Casi di integrazione
Automazione della segreteria
Elabori in blocco gli elenchi dei voti tramite l'API per pubblicare i GPA ufficiali in modo deterministico.
Domande tecniche
Quanti corsi posso inviare?
Tra 1 e 50 per richiesta; fuori da quell'intervallo restituisce invalid_input.
È gratuito?
Sì nel widget del browser; l'API esegue la stessa logica a partire da $0.002 per chiamata.