Javascript functions Math.round(num) vs num.toFixed(0) and browser inconsistencies
- by eft
Edit: To clarify, the problem is how to round a number to the nearest integer. i.e. 0.5 should round to 1 and 2.5 shoud round to 3.
Consider the following code:
<html><head></head><body style="font-family:courier">
<script>
for (var i=0;i<3;i++){
var num = i + 0.50;
var output = num + " " + Math.round(num) + " " + num.toFixed(0);
var node = document.createTextNode(output);
var pElement = document.createElement("p");
pElement.appendChild(node);
document.body.appendChild(pElement);
}
</script>
</body></html>
In Opera 9.63 I get:
0.5 1 0
1.5 2 2
2.5 3 2
In FF 3.03 I get:
0.5 1 1
1.5 2 2
2.5 3 3
In IE 7 I get:
0.5 1 0
1.5 2 2
2.5 3 3
Note the bolded results. Does this mean that toFixed(0) should be avoided?