Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
DmitryM5
Love~
52 / 52 / 23
Регистрация: 27.08.2013
Сообщений: 940
Записей в блоге: 1
#1

Погрешность числа (округление)

10.10.2014, 22:50. Просмотров 1331. Ответов 25
Метки нет (Все метки)

Всем привет,есть алгоритм в котором производится операция умножения часто.
В конечном итоге я получаю ответ равный 1, а верный ответ 0.9604.
Использую тип double.
Видимо происходит округление какое то.Как его избежать?

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2014, 22:50
Ответы с готовыми решениями:

Найти погрешность числа
Добрый вечер.Дана вроде простая задача,а появились проблемы.Записать число пи с...

Округление числа
Кто-нибудь может подробно-подробно объяснить, как округлять числа в C++. А то я...

Округление числа
Если разложение в ряд тейлора и поиск сумы и заданая точность е.И вот нам надо...

Округление числа
Не пойму, почему компилятор пишет Выражение должно иметь целочисленный или...

Округление мелкого числа до 0
Всем привет, времени мало поэтому пишу сюда суть такова - нужно сделать...

25
Nevermind_qqq
72 / 58 / 41
Регистрация: 25.06.2014
Сообщений: 358
10.10.2014, 23:01 #2
код бы увидеть, а то так сложно определить
1
DmitryM5
Love~
52 / 52 / 23
Регистрация: 27.08.2013
Сообщений: 940
Записей в блоге: 1
10.10.2014, 23:05  [ТС] #3
Цитата Сообщение от Nevermind_qqq Посмотреть сообщение
код бы увидеть, а то так сложно определить
Код не мал,и входного файла .txt нет,он на сайте. А сам cpp проверяется так же через сайт...
0
SlavaSSU
217 / 162 / 47
Регистрация: 17.07.2012
Сообщений: 587
10.10.2014, 23:11 #4
а что на что умножается? дабл на дабл? просто не верится что просто умножение может потерять аж 4 сотых
0
DmitryM5
Love~
52 / 52 / 23
Регистрация: 27.08.2013
Сообщений: 940
Записей в блоге: 1
10.10.2014, 23:18  [ТС] #5
Цитата Сообщение от SlavaSSU Посмотреть сообщение
а что на что умножается? дабл на дабл? просто не верится что просто умножение может потерять аж 4 сотых
double*double.

Добавлено через 2 минуты
Ну что то типо того :
C++
1
2
3
4
5
...
vector<vector<double>> gh;
...
gh[i][j] = gh[i][k] * gh[k][j];
...
Быть может есть какой то тип,еще точнее?
0
SlavaSSU
217 / 162 / 47
Регистрация: 17.07.2012
Сообщений: 587
10.10.2014, 23:25 #6
DmitryM5, флойд xD? ну лонг дабл
1
DmitryM5
Love~
52 / 52 / 23
Регистрация: 27.08.2013
Сообщений: 940
Записей в блоге: 1
10.10.2014, 23:26  [ТС] #7
Цитата Сообщение от SlavaSSU Посмотреть сообщение
DmitryM5, флойд xD? ну лонг дабл
в точку))
0
SlavaSSU
217 / 162 / 47
Регистрация: 17.07.2012
Сообщений: 587
10.10.2014, 23:30 #8
DmitryM5, а это осознанно минимум не берется при присвоении?
0
DmitryM5
Love~
52 / 52 / 23
Регистрация: 27.08.2013
Сообщений: 940
Записей в блоге: 1
10.10.2014, 23:33  [ТС] #9
Цитата Сообщение от SlavaSSU Посмотреть сообщение
DmitryM5, а это осознанно минимум не берется при присвоении?
Ну это не совсем флойд,я ищу не кратчайшие пути,а max путь..
Кусок таков:
C++
1
2
3
4
...
if (gh[i][j] < gh[i][k] * gh[k][j]) 
        gh[i][j] = gh[i][k] * gh[k][j];
...
0
SlavaSSU
217 / 162 / 47
Регистрация: 17.07.2012
Сообщений: 587
10.10.2014, 23:39 #10
DmitryM5, может лучше задачу расскажешь? тебе надо найти макс расстояния между всеми парами вершин, при этом длина пути - произведение длин ребер на нем?
0
DmitryM5
Love~
52 / 52 / 23
Регистрация: 27.08.2013
Сообщений: 940
Записей в блоге: 1
10.10.2014, 23:43  [ТС] #11
Все верно,только нужно одно максимальное расстояние от нулевой(начало) вершины до n-ой(конец).
0
SlavaSSU
217 / 162 / 47
Регистрация: 17.07.2012
Сообщений: 587
10.10.2014, 23:45 #12
DmitryM5, а до скольки веса ребер? и от скольки?
0
DmitryM5
Love~
52 / 52 / 23
Регистрация: 27.08.2013
Сообщений: 940
Записей в блоге: 1
10.10.2014, 23:46  [ТС] #13
Алгоритм верен,поскольку проходит 9/10 тестов,просто в одном происходит округление или погрешность накапливается .

Добавлено через 1 минуту
Ну 0<=weight<=и без понятия,поскольку файлы входные невидно.
0
SlavaSSU
217 / 162 / 47
Регистрация: 17.07.2012
Сообщений: 587
10.10.2014, 23:50 #14
DmitryM5, ну не знаю. там с какой точностью надо вывести ответ и как ты выводишь?
если косяков нет напиши дейкстру или поиск в ширину с обновлениями и пошли. если и они не пройдут, то дальше думать будешь
0
DmitryM5
Love~
52 / 52 / 23
Регистрация: 27.08.2013
Сообщений: 940
Записей в блоге: 1
10.10.2014, 23:54  [ТС] #15
Дейкстру писал все 10 сработали.
Разрешена погрешность при выводе в 0.01
0
SlavaSSU
217 / 162 / 47
Регистрация: 17.07.2012
Сообщений: 587
10.10.2014, 23:55 #16
DmitryM5, а ты как выводишь?
прям кусок кода покажи.
0
DmitryM5
Love~
52 / 52 / 23
Регистрация: 27.08.2013
Сообщений: 940
Записей в блоге: 1
11.10.2014, 00:11  [ТС] #17
C++
1
cout<<gh[0][n-1];
0
SlavaSSU
217 / 162 / 47
Регистрация: 17.07.2012
Сообщений: 587
11.10.2014, 00:14 #18
DmitryM5, ну а сколько знаков?
0
DmitryM5
Love~
52 / 52 / 23
Регистрация: 27.08.2013
Сообщений: 940
Записей в блоге: 1
11.10.2014, 00:21  [ТС] #19
Никогда не использовал количество знаков после запятой...
0
SlavaSSU
217 / 162 / 47
Регистрация: 17.07.2012
Сообщений: 587
11.10.2014, 00:23 #20
DmitryM5, ну напиши

C++ (Qt)
1
2
3
4
#include <iomanip>
 
cout << setprecision(5) << fixed;
cout << g[0][n - 1] << endl;
1
11.10.2014, 00:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2014, 00:23

Быстрое округление числа
Здравствуйте уважаемые программисты! Подскажите как быстрее всего округлить...

Вещественные числа и округление
Или я туплю, или долго сижу, но вот никак не могу решить такую задачу: есть...

Округление числа до десятых
Как округлить число до целого я знаю, s=(s-floor(s)&lt;0.5)?floor(s):ceil(v) а...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru