Форум программистов, компьютерный форум CyberForum.ru

Уборка мусора из double - C++

Восстановить пароль Регистрация
 
Donville
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 112
31.05.2014, 22:36     Уборка мусора из double #1
Подскажите, как убрать мусор из числа типа double. Например число 13 на самом деле не 13, а 13.00000001.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
31.05.2014, 22:37     Уборка мусора из double #2
Цитата Сообщение от Donville Посмотреть сообщение
Например число 13 на самом деле не 13, а 13.00000001.
Представление вещественных чисел "на пальцах"
Voivoid
 Аватар для Voivoid
580 / 256 / 12
Регистрация: 31.03.2013
Сообщений: 1,284
31.05.2014, 22:43     Уборка мусора из double #3
Лол, я уж сначала подумал, что сейчас что-нибудь новенькое про garbage collection почитаю
Psilon
Master of Orion
 Аватар для Psilon
5743 / 4691 / 619
Регистрация: 10.07.2011
Сообщений: 14,162
Записей в блоге: 5
Завершенные тесты: 4
31.05.2014, 22:51     Уборка мусора из double #4
Donville,
английский вариант: http://docs.oracle.com/cd/E19957-01/..._goldberg.html
русский вариант: http://habrahabr.ru/post/112953/

Добавлено через 35 секунд
Voivoid, к сожалению, в языках с GC double все равно не убирается сборщиком
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
31.05.2014, 23:11     Уборка мусора из double #5
Цитата Сообщение от Psilon Посмотреть сообщение
в языках с GC double все равно не убирается сборщиком
C++
1
double^ d = gcnew double(42);//C++ CLI
Кто будет освобождать память по-Вашему?
Donville
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 112
31.05.2014, 23:32  [ТС]     Уборка мусора из double #6
То есть если у меня есть цикл, например, while (x1<=x2), то его нужно заменить так: while(fabs(x2-x1)>=0.0001)?
Psilon
Master of Orion
 Аватар для Psilon
5743 / 4691 / 619
Регистрация: 10.07.2011
Сообщений: 14,162
Записей в блоге: 5
Завершенные тесты: 4
01.06.2014, 00:26     Уборка мусора из double #7
Tulosba, double является псевдонимом System.Double, являющегося структурой, следовательно gcnew по барабану, при выходе из области видимости структуры автоматически удаляются.

Добавлено через 2 минуты
Donville, нет, сравнение с эпислон нужно заменять вместо x1 == x2. А меньше и больше можно использовать как обычно.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
01.06.2014, 00:38     Уборка мусора из double #8
Цитата Сообщение от Psilon Посмотреть сообщение
double является псевдонимом System.Double, являющегося структурой, следовательно gcnew по барабану, при выходе из области видимости структуры автоматически удаляются.
Неужели? А здесь что будет тогда при выходе из функции?
C++
1
2
3
4
5
double^ f()
{
    double^ d = gcnew double(42);
    return d;
}
Donville
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 112
01.06.2014, 01:25  [ТС]     Уборка мусора из double #9
Psilon, у меня просто теряется одна итерация. На последнем проходе цикла у меня x1 = 12.00000001, a x2 = 13 пользователь задает сам.

Добавлено через 17 минут
Это как пример.

Добавлено через 8 минут
C++
1
2
3
4
5
6
7
8
9
10
11
...
cout << "Bbedute x1"<<endl;
cin >> x1;
cout << "Bbedute x2"<<endl;
cin >> x2;
cout << "Bbedute shag"<<endl;
cin >> sh;
while (x1<=x2)
{
    x1 = x1+sh;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2014, 04:08     Уборка мусора из double
Еще ссылки по теме:

Домашнее задание ошибки double circle_area(double R) C++
C++ Вывести long double число без перевода в double
Почему перестает работать программа при замене double на long double? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Psilon
Master of Orion
 Аватар для Psilon
5743 / 4691 / 619
Регистрация: 10.07.2011
Сообщений: 14,162
Записей в блоге: 5
Завершенные тесты: 4
01.06.2014, 04:08     Уборка мусора из double #10
Tulosba, 42 же.

Вообще по CLI я не сильно большой спец, но вот .Net неплохо знаю. При любых обстоятельствах структура уничтожается, а если возвращается, то копируется по значению, то есть возвращается копия.

Добавлено через 1 час 59 минут
Tulosba, а вообще
http://developerslife.ru/256
Yandex
Объявления
01.06.2014, 04:08     Уборка мусора из double
Ответ Создать тему
Опции темы

Текущее время: 23:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru