Round

by João Rodrigues

HTML

<!DOCTYPE html>
<html>
    <body>
        <p id="rounded"></p>
        <p>Addition</p>
        <p id="resultAdd"></p>
        <p id="resultAdd2"></p>
        <p>Subtraction</p>
        <p id="resultSub"></p>
        <p id="resultSub2"></p>
    </body>
</html>

JavaScript

function round(x, p) {
    return parseFloat(x.toFixed(p));
};

var a = 5.0007;
var b = 2.048

var roundedA = round(5.0007, 3);
var roundedB = round(2.048, 2);

document.getElementById("rounded").innerHTML
    = 'a = ' + roundedA + ', b = ' + roundedB;


// expected resultAdd: 7.051 - works fine
var resultAdd = round(5.0007, 3) + round(2.048, 2);
var resultAdd2 = roundedA + roundedB;

document.getElementById("resultAdd").innerHTML = resultAdd;
document.getElementById("resultAdd2").innerHTML = resultAdd2;


// expected result: 2.951
// obtained result: 2.9510000000000005
var resultSub = round(5.0007, 3) - round(2.048, 2);
var resultSub2 = roundedA - roundedB;

document.getElementById("resultSub").innerHTML = resultSub;
document.getElementById("resultSub2").innerHTML = resultSub2;