I have this query my goal is to get percent
NVL(ROUND(100 * NVL(activeCount, 0) / NULLIF((NVL(activeCount, 0) + NVL(blockCount, 0) + NVL(closeCount, 0) + NVL(draftCount, 0)), 0), 0), 0) AS activePercent,
NVL(ROUND(100 * NVL(blockCount, 0) / NULLIF((NVL(activeCount, 0) + NVL(blockCount, 0) + NVL(closeCount, 0) + NVL(draftCount, 0)), 0), 0), 0) AS blockPercent,
NVL(ROUND(100 * NVL(closeCount, 0) / NULLIF((NVL(activeCount, 0) + NVL(blockCount, 0) + NVL(closeCount, 0) + NVL(draftCount, 0)), 0), 0), 0) AS closePercent,
NVL(ROUND(100 * NVL(draftCount, 0) / NULLIF((NVL(activeCount, 0) + NVL(blockCount, 0) + NVL(closeCount, 0) + NVL(draftCount, 0)), 0), 0), 0) AS draftPercent
But some records when I add to get the total its 99 sometimes its 101
What is the best way to make sure I get 100 all the time?
Sample data:

