![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Apr 2009
Сообщений: 104
|
Приветствую всех. Столкнулся с проблемой, попортившей немало крови а именно:
Флеш некорректно выполняет арифметические операции над некоторыми отдельно взятыми числами. Например - при вычитании из 2.3 единицу (2.3-1) получается бред вида 1.29999999.... При этом если вместо 2.3 взять 3.3, 5.3 то все ок, зато если из 5.3 вычитаем 4 (чтобы получить опять таки проблемное 1.3) получаем опять таки 1.2999999. Похожие проблемы были с делением, например при делении 1.9/0.1 получалось не 19 а 18.9999999...... В итоге это все приводило к тому что при последующих манипуляциях с числами получались реально неверные результаты, и я никак н мог понять в чем дело. Да, проверил это на других SDK - все тоже самое. Кто нибудь сталкивался с подобным? |
|
|||||
|
Регистрация: Jan 2008
Адрес: Питер
Сообщений: 389
|
сталкивался и сталкиваюсь...
еще пытаюсь сам понять что за фигня))) |
|
|||||
|
Регистрация: Apr 2009
Сообщений: 104
|
Вот блин =)) И как теперь быть, когда в программе сплошные вычисления?
|
|
|||||
|
Регистрация: Jan 2008
Адрес: Питер
Сообщений: 389
|
я тем же вопросом озадачен ))
|
|
|||||
|
Регистрация: Feb 2009
Сообщений: 1,195
|
Этот вопрос часто обсуждается, используйте поиск по форуму.
|
|
|||||
|
Регистрация: Oct 2006
Адрес: Москва
Сообщений: 889
|
а если арифметические действия будут происходить с числами у которых после запятой около 4-5 знаков тоже будет врать?
|
|
|||||
|
Регистрация: Jan 2008
Адрес: Питер
Сообщений: 389
|
как это??нельзя точно посчитать 0.5 - 0.1 к примеру????????
|
|
|||||
|
Регистрация: Apr 2009
Сообщений: 104
|
Не очень понятно что до чего округлять. Допустим я работаю с десятыми долями, т е мне достаточно одного знака. И как мне быть когда мне нужно к примеру 19 умножить на 0.1? Или же вышеприведенное вычитание. И чтобы всегда было без сюрпризов?
Ps Не знаю обычное ли это поведение, но я с плавающей точкой работаю не первый и даже не десятый раз (начинаю с паскаля и заканчивая .Net), но подобное виже впервые во flash. |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:47. |
|
|
« Предыдущая тема | Следующая тема » |
|
|