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

Вычисления с малыми числами - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Многопоточное програмирование http://www.cyberforum.ru/cpp-beginners/thread84315.html
здрасвуйте))) обращаюсь к вам, так как знаю, что люди которые общаются на етом форуме понимают своё дело))) мне нужно написать какую то простенькую многопоточную програму. Хотелось бы увидеть пример такой програмы, естли у кого то есть такое, а ещё лутше, естли будет с коментариями, так как мне ето нужно для лабораторной работы. У меня есть неккий материал, но там ничего не понятно, всё как то...
C++ [BC++] Сообщения из FTDI Заранее приветствую всех откликнувшихся. Раздобыл некоторые девайсы для реализации след.схемы: ПК<->USB<->FTDI-устройство<->шина CAN<->некий контроллер<->полезное оборудование. Ко всему этому есть работающий фирменный софт, но его поддержка перестала осуществляться производителем, а потому возникло желание попробовать сделать потобный софт самому, т.к. обладаю некоторыми навыками... http://www.cyberforum.ru/cpp-beginners/thread84261.html
C++ Как определить размер изображения??
Подскажите, пожалуйста, как определить размер изображения ?? (С++).
C++ Построить бинарное дерево
Помогите построить бинарное дерево арифметического выражения, т.е. если входная трока A+B то дерево должно получится вот такое + / \ A B я уже сделал часть работу, а именно перевод входной строки в ОПЗ(если...
C++ Работа с каталогом изображений http://www.cyberforum.ru/cpp-beginners/thread84214.html
Есть задание: имеется каталог изображений. Нужно определить, какое/какие изображения превышают заданный порог по площади. Скажите, пожалуйста, каким образом можно определить размер самих изображений, реализуя алгоритм на С++ ?? Заранее спасибо.
C++ Побитовое копирование double Доброго времени суток! Преамбула: В целях интеграции Lua в движок C++ пытаюсь написать класс который может помещать в себя все типы данных в определенном порядке, чтобы можно было передать ссылку на этот класс в функцию которая отправит эти данные в обработчик Lua. Класс почти написал за исключением поддержи double - потому что для double нельзя использовать побитовые операции, через которые... подробнее

Показать сообщение отдельно
snake32
 Аватар для snake32
1301 / 944 / 119
Регистрация: 26.02.2009
Сообщений: 3,475
Записей в блоге: 5
11.01.2010, 18:48     Вычисления с малыми числами
Кто такие комрады?
К сожалению этих ошибок не избежать пока Вы работаете с "плавающей арифметикой".
Нормальных решений в таких проблемах нет. Старайтесь избегать таких малых(или очень больших) чисел. Используйте, тип double вместо float, тк точность там по идеи в 2 раза больше ибо в 2 раза больше памяти отводится под число. В делфях есть тип Extended - 10 байт, скорее всего в С тоже есть такой, я не в курсе.

Как вариант, предложил бы домножить оба числа на 1е12( чтобы точность была чуть выше) и уже с такими числами работать а при выводе обратно на 1е-12.
Если работаете в цикле то лучше, мне кажется, не суммировать слишком малую величину, а использовать умножение, те:
C++
1
2
3
4
5
6
7
8
double step = 1.0e-25;
double s = 0.0;
for(int i=0; i<100; i++)
{
  // что-нибудь делаем с s
  //s+=step; // не так!!! слишком малое значение
  s=step*i;// наверно так лучше будет, но я не уверен - проверь обязательно =)
}
и вообще float-числа очень опасны, тк никогда нельзя точно сказать какая у них погрешность. Почитайте литературу о стр-ре этого типа и сами всё поймёте.

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