Consider this javascript that rounds to the nearest tenth, then totals the numbers together.
var log = function(key, value) {
var li = document.createElement("li");
li.appendChild(document.createTextNode(key + " = " + value));
document.getElementById("results").appendChild(li);
};
var number1 = Math.round(10*33.333)/10; // gives 33.3
var number2 = Math.round(10*33.333)/10; // gives 33.3
var number3 = Math.round(10*33.333)/10; // gives 33.3
var totalOfAllNumbers = number1 + number2 + number3; //gives 99.89999999999999?
var totalOfAllRealNumbers = 33.3 + 33.3 + 33.3; //gives 99.9?
log("number1", number1);
log("number2", number2);
log("number3", number3);
log("totalOfAllNumbers", totalOfAllNumbers);
<ul id="results"></ul>
The numbers appear to be rounded, but the total doesn't add up to 99.9? Why?
What is the difference between the number entered as 33.3 manually, and the result of a division? Are they different types?