Показать сообщение отдельно
Старый 26.04.2008, 23:20
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
У флеша есть погрешность при сложении дробных чисел не кратных (0.5, 0.25, 0.125, 0.0625 и тд).
Поэтому со временем накапливается ошибка при сложении.
И реально, при многократном вызове n+=0.2, вместо 4 оказывается число 4.000000000000000888178419700125

Вторая проблема заключается в том, что при таком малом значении дробной части, в трейс выводится только целая часть, что может вызывать кучу проблем и вопросов, вроде сраниваем
Код:
trace (n +" == 4 -->" + (n== 4))
//// 4  == 4 --> false
а получается, что 4 не равно 4.
Увидеть данную проблему можно так:
Код:
trace (n - 4)
//// 8.88178419700125e-16
__________________
(и)Нильс.ru | Плагины для FlashDevelop