From 25bf23930255da150a54638c277dcd5feb6a80bf Mon Sep 17 00:00:00 2001 From: Sneha Jindal Date: Thu, 8 Oct 2026 19:05:07 +0530 Subject: [PATCH] fix: use consistent 2 d.p. rounding in answer checks (closes #179) --- server/routes/geometry.js | 2 +- server/routes/misc.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/server/routes/geometry.js b/server/routes/geometry.js index 22934ae24..c5c554a7e 100644 --- a/server/routes/geometry.js +++ b/server/routes/geometry.js @@ -586,7 +586,7 @@ const generators = { }, check(body) { const userNum = parseFloat((body.userAnswer || '').replace(/\s+/g, '')); - const correct = !isNaN(userNum) && Math.abs(userNum - body.answer) < 0.5; + const correct = !isNaN(userNum) && Math.round(userNum * 100) === Math.round(body.answer * 100); return { correct, display: body.display, message: correct ? 'Correct!' : 'Incorrect' }; }, }, diff --git a/server/routes/misc.js b/server/routes/misc.js index 45f97dc0c..2a381e3eb 100644 --- a/server/routes/misc.js +++ b/server/routes/misc.js @@ -1181,7 +1181,7 @@ const generators = { const rn = ansNum / g; const rd = ansDen / g; answer = rd === 1 ? rn : Math.round((rn / rd) * 100) / 100; display = answer + ' km/h'; - prompt = `A cyclist rides ${d1} km at ${s1} km/h then ${d2} km at ${s2} km/h. Find the average speed (to 2 d.p. if needed).`; + prompt = `A cyclist rides ${d1} km at ${s1} km/h then ${d2} km at ${s2} km/h. Find the average speed. Give your answer correct to 2 decimal places.`; } else { const ms = randInt(5, 30); answer = Math.round(ms * 3.6 * 100) / 100; display = answer + ' km/h'; @@ -1191,7 +1191,7 @@ const generators = { }, check(body) { const ua = parseFloat((body.userAnswer || '').replace(/[^\d.\-\/]/g, '')); - const correct = !isNaN(ua) && Math.abs(ua - body.answer) < 0.05; + const correct = !isNaN(ua) && Math.round(ua * 100) === Math.round(body.answer * 100); return { correct, display: body.display, message: correct ? 'Correct!' : 'Incorrect' }; }, },