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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ двумерный массив http://www.cyberforum.ru/cpp-beginners/thread84545.html
Ввести двумерный массив А (5*2).Определить в нем сумму модулей отрицательный элементов. Язык С++.Помогите, пожалуйста.Нужно на экзамен.
C++ Файл, содержащий структуру Ребят, помогите решить задачу. Дано следующее условие: (оформить нужно в С) Дан файл, содержащий сведения о книгах: фамилию автора, название книги и год издания. По запросу определить имеется ли в наличии книга с определенным названием, если да, то вывести фамилию автора и год издания. Заранее Спасибо! http://www.cyberforum.ru/cpp-beginners/thread84534.html
Исcледованние абстрактных типов данных C++
Нужно сделать такое задание, кто может помогите сделать. Написать 2 программы на Си которые состоит с следующих дейтсвий 1.Описания элемента структуры данных согласно с вариантом (табл.1). 2.Описания абстрактного типа данных согласно с вариантом (табл.1) 3. Реализация абстрактного типа данных: – записи до абстрактного типа данных нескольких значений („операция_1”); – чтение до абстрактного...
C++ отсортировать массив модифицированным методом простого выбора
отсортировать массив модифицированным методом простого выбора. а затем применить этот масив для решения задачи. Дана целочисленная последовательность {ai} верхний индекс n нижний 1. Получить упорядоченную по возрастанию последовательность из чисел, которые входят в данную последовательность по одному разу. Все это сделать одной программой!
C++ Отсортировать массив методом Шелла http://www.cyberforum.ru/cpp-beginners/thread84481.html
Помогите пожалуйста! мне нужно отсортировать массив методом Шелла, а потом с помощью этого отсортированного массива решить задачу. Если данная последовательность не упорядочена ни по неубыванию, ни по невозрастанию, найти среднее геометрическое положительных членов.
C++ Комплексные числа.. Помогите пожалуйста... срочно нужно решение этой задачки.. Описать класс для работы с комплексными числами. Определить методы для сложения, умножения чисел. Заранее спасибо... подробнее

Показать сообщение отдельно
snake32
1379 / 1022 / 137
Регистрация: 26.02.2009
Сообщений: 3,774
Записей в блоге: 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 минуту
ох нифига.... пока писал...три поста уже появилось
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru