PDA

Просмотр полной версии : -2.77555756156289e-17


glob
18.11.2005, 04:18
hi.
code:
a = 0.3;
for (b=1; b<=3; b++) {
a -= 0.1;
trace(a);
}
out:
0.2
0.1
-2.77555756156289e-17
Почему?...

liquid lone
18.11.2005, 08:50
А так работает:

a = 0.3;
//num - число, которое округляем, n - до какого знака после запятой округляем
function myRound (num, n) {
var kof = Math.pow(10, n)
return Math.round(num*kof)/kof
}
for (b=1; b<=3; b++) {
a -= 0.1;
trace (myRound(a, 1))
}

maelstorm
18.11.2005, 10:45
видимо ошибки точности при работе с плавающей точкой

iNils
18.11.2005, 14:40
Тема не раз обсуждалась, и тут тоже http://flash-mx.ru/forum/topic_show.pl?tid=167