Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 20.08.2010, 19:59
australian incognito вне форума Посмотреть профиль Отправить личное сообщение для australian incognito Найти все сообщения от australian incognito
  № 1  
Ответить с цитированием
australian incognito
 
Аватар для australian incognito

Регистрация: Sep 2005
Адрес: Минск
Сообщений: 389
По умолчанию появление чисел после запятой при элементарных целочисленных +- операциях?

Вот некой переменной целочисленной (допустим 100) начинаю минусовать число (допустим 2) в цикле. Трейшу:
100
98
...
88
85,9999999998
и далее в таком духе...

Откуда этот маразм? Я так понимаю, если я потом эту переменную использую - при таком раскладе сложность вычислений увеличивается и растет загрузка цп... Или я не прав?

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Код можно?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 20.08.2010, 20:28
australian incognito вне форума Посмотреть профиль Отправить личное сообщение для australian incognito Найти все сообщения от australian incognito
  № 3  
Ответить с цитированием
australian incognito
 
Аватар для australian incognito

Регистрация: Sep 2005
Адрес: Минск
Сообщений: 389
Цитата:
Сообщение от iNils Посмотреть сообщение
Код можно?
Код AS1/AS2:
aaa = 0;
bbb = 50;
onEnterFrame = function ()
{
	if (aaa++ > 20)
	{
		aaa = 0;
		if (bbb > 2)
		{
			bbb -= 0.2;
		}
		trace(bbb);
	}
};
и результат трейса:
49.8
49.6
49.4
49.2
49
48.8
48.6
48.4
48.2
48
47.8
47.6
47.4
47.2
47
46.8
46.5999999999999
46.4
46.1999999999999
45.9999999999999
45.7999999999999
45.5999999999999
45.3999999999999
45.1999999999999
44.9999999999999

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
И где в числе 0.2 целое число?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 20.08.2010, 20:33
australian incognito вне форума Посмотреть профиль Отправить личное сообщение для australian incognito Найти все сообщения от australian incognito
  № 5  
Ответить с цитированием
australian incognito
 
Аватар для australian incognito

Регистрация: Sep 2005
Адрес: Минск
Сообщений: 389
виноват, просто с целым числом дольше ждать ошибку

Добавлено через 48 секунд
не важно даже, с каким - целым или дробным... важнее вопрос - дает ли это в дальнейшем нагрузку на проц?

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Ее не будет. При работе с дробными числами (при чем не у всех, дроби полученные путем деления на 5, от этом проблемы избавлены) накапливается погрешность, которая в один прекрасный момент вылазит на свет. А с целыми числами такой погрешности нет.
Возможный вариант, что число было получено в результате каких вычислений и трейс показывает его как целое, но на самом деле, он просто округляет его до целого. Например число 2.000000000000001 трейс покажет как 2
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 20.08.2010, 20:41
australian incognito вне форума Посмотреть профиль Отправить личное сообщение для australian incognito Найти все сообщения от australian incognito
  № 7  
Ответить с цитированием
australian incognito
 
Аватар для australian incognito

Регистрация: Sep 2005
Адрес: Минск
Сообщений: 389
спасибо за развернутый ответ.

Старый 06.03.2011, 21:03
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 8  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
у меня тот-же трабл, но вычитать дробную переменную нужно.
Можно както обрезать или округлить полученную такую дробную переменную ?
Чтоб выводилось не 234.86999999999999999 а 234.86 c двумя числами после запятой ?

Всё придумал, умножаем на 100 делем на 100
__________________
Дети не должны знать о своих родителях


Последний раз редактировалось Tails; 06.03.2011 в 21:20.
Создать новую тему Ответ Часовой пояс GMT +4, время: 10:55.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 10:55.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.