Рассмотрим следующий код:
for (var i=0;i<3;i++){
var num = i + 0.50;
var output = num + " " + Math.round(num) + " " + num.toFixed(0);
alert(output);
}
В Opera 9.63 я получаю:
0,5 1 0
1,5 2 2
2,5 3 2
В FF 3.03 я получаю:
0,5 1 1
1,5 2 2
2,5 3 3
В IE 7 я получаю:
0,5 1 0
1,5 2 2
2,5 3 3
Обратите внимание на полужирные результаты. Почему эти несоответствия присутствуют? Означает ли это, что toFixed(0)
следует избегать? Каков правильный способ округления числа до ближайшего целого?