CGPA Calculator

Enter your semester GPA and credit hours to calculate your cumulative GPA across all semesters. Also converts CGPA to percentage.

Advertisement
Semester name (optional)
GPA (0–4.0)
Credits
Advertisement

CGPA to Percentage formula

Most universities use: Percentage = CGPA × 9.5 (for 10-point scale) or Percentage = (CGPA / 4.0) × 100 for the 4.0 scale. This calculator uses the 4.0 scale formula.

Related tools

let sems=[{name:'Semester 1',gpa:3.5,credits:18},{name:'Semester 2',gpa:3.8,credits:18}]; function renderSems(){ document.getElementById('sems-list').innerHTML=sems.map((s,i)=>`
`).join(''); } function addSem(){sems.push({name:'Semester '+(sems.length+1),gpa:0,credits:18});renderSems();} function removeSem(i){if(sems.length>1){sems.splice(i,1);renderSems();}} function reset(){sems=[{name:'Semester 1',gpa:3.5,credits:18},{name:'Semester 2',gpa:3.8,credits:18}];renderSems();document.getElementById('result').style.display='none';} function calculate(){ const totalPts=sems.reduce((s,sem)=>s+(sem.gpa*sem.credits),0); const totalCr=sems.reduce((s,sem)=>s+(+sem.credits),0); if(!totalCr)return; const cgpa=(totalPts/totalCr).toFixed(2); const pct=((cgpa/4)*100).toFixed(1); const g=parseFloat(cgpa); let grade='',col='#dc2626'; if(g>=3.7){grade='Excellent — Outstanding performance!';col='#16a34a';} else if(g>=3.0){grade='Good — Above average performance';col='#2563eb';} else if(g>=2.0){grade='Average — Satisfactory performance';col='#d97706';} else{grade='Below average — Need improvement';col='#dc2626';} document.getElementById('r-cgpa').textContent=cgpa; document.getElementById('r-pct').textContent=pct+'%'; document.getElementById('r-cr').textContent=totalCr; document.getElementById('r-grade').textContent=grade; document.getElementById('r-grade').style.color=col; document.getElementById('result').style.display='block'; } document.addEventListener('DOMContentLoaded',()=>{ renderSems(); document.getElementById('related-grid').innerHTML=TOOLS.filter(t=>t.category==='grade'&&t.slug!=='cgpa-calculator').slice(0,4).map(buildToolCard).join(''); });