Форум программистов, компьютерный форум, киберфорум
Наши страницы

Вычисления с малыми числами - 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)....
C++ отсортировать массив модифицированным методом простого выбора
отсортировать массив модифицированным методом простого выбора. а затем применить этот масив для решения задачи. Дана целочисленная последовательность {ai} верхний индекс n нижний 1. Получить...
C++ Отсортировать массив методом Шелла http://www.cyberforum.ru/cpp-beginners/thread84481.html
Помогите пожалуйста! мне нужно отсортировать массив методом Шелла, а потом с помощью этого отсортированного массива решить задачу. Если данная последовательность не упорядочена ни по неубыванию,...
C++ Комплексные числа.. Помогите пожалуйста... срочно нужно решение этой задачки.. Описать класс для работы с комплексными числами. Определить методы для сложения, умножения чисел. Заранее спасибо... подробнее

Показать сообщение отдельно
Telliax
0 / 0 / 0
Регистрация: 11.01.2010
Сообщений: 5
11.01.2010, 18:42  [ТС]
Цитата Сообщение от insideone Посмотреть сообщение
Возможно дебаггер врет? В реальной программе все так же?

C++
1
2
3
long double x = 15.0E-30L;
long double y = 3.4E-30L;
long double z = x + y + 234.E-30L; // z = 2.5240000000000003e-028
Вроде все нормально - VS 2008

Может если перед сложением домножить оба числа чтобы они стали больше а потом после сложения разделить на него? По крайне мере так же он не должен будет округлять?
Дебаггер не врет, т.к. ведется лог всех вычислений. В твоем примере складываются числа одного порядка, с ними проблем нет. МОжет быть я не четко выразил свою мысль. Проблема возникает когда порядки чисел разлячаются на ~15 и больше, т.е. когда одно число значительно больше другого.
Домножение пробовал - не помогает, да и было бы странно если бы помогло Писал на вс шарпе, потом перешел на КуТэ, проблема никуда не делась.
нужно пронормировать интеграл, по возможности так, чтобы избежать слишком малых чисел. то есть не чтобы складывать e-12 & e-25, а 1 и е-13
Не уверен в том, что это поможет. Проблема не в том, что числа маленькие сами по себе, проблема в том что одно изних сильно меньше другого. Покрайней мере мне так видится
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.