Javascript functions Math.round(num) vs num.toFixed(0) and browser inconsistencies
        Posted  
        
            by 
                eft
            
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by eft
        
        
        
        Published on 2009-02-19T18:31:57Z
        Indexed on 
            2012/09/01
            21:38 UTC
        
        
        Read the original article
        Hit count: 353
        
JavaScript
|cross-browser
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?
© Stack Overflow or respective owner