3 / 2 / 3
Регистрация: 09.05.2014
Сообщений: 60
|
||||||
1 | ||||||
Тип выводимых данных. abs() и fabs()21.12.2014, 23:29. Показов 3803. Ответов 12
Метки нет Все метки)
(
Здравствуйте, столкнулся с такой проблей при выводе через cout данных типа double выводится почемуто только 2 знака после запятой(хотя их там 16 значащих цифр), если не сделать принудительное приведение к типу double в cout, если сделать приведение то всё нормально
Кроме того если использовать setprecision() то всё выводится нормально без приведения типа (правда выводит кроме значащих цифр ещё и ненужные нули) Может кто подсказать почему так? раньше с таким ни разу не встречался, всё всегда с выводом было в порядке Другой проект работает нормально всё выводится как и должно вот объявление данных и вывод
0
|
|
21.12.2014, 23:29 | |
Ответы с готовыми решениями:
12
Тип FILE, abs. не определен идентификатор
Группировка выводимых данных Разделение выводимых данных |
7345 / 6271 / 2852
Регистрация: 14.04.2014
Сообщений: 27,158
|
|
22.12.2014, 09:18 | 2 |
Что именно из всего этого выводится не так и какое там значение?
0
|
3 / 2 / 3
Регистрация: 09.05.2014
Сообщений: 60
|
|||||||||||
22.12.2014, 15:15 [ТС] | 3 | ||||||||||
вот эта строка выводит у предпоследних 2-x чисел (на 2-й строке нижеприложенного кода находятся, с них она начинает) всего по 2 знака после запятой, хотя они все типа double и отличаются в 15-16 знаке после запятой, а последнее значение выводит 0 хотя должно быть число в -15,-16 степени
0
|
7345 / 6271 / 2852
Регистрация: 14.04.2014
Сообщений: 27,158
|
|
22.12.2014, 16:03 | 4 |
По умолчанию вся цифры и не выводятся. Указывай явно, сколько тебе нужно после запятой. Для последнего используй научный формат с E.
0
|
3 / 2 / 3
Регистрация: 09.05.2014
Сообщений: 60
|
||||||||||||||||||||||||||||||||||||
22.12.2014, 20:20 [ТС] | 5 | |||||||||||||||||||||||||||||||||||
вот кусок кода из другого проекта, всё выводит нормально
т.е. при
ведь насколько я понимаю вот такая програмка выдаст true, в моём же коде почемуто это не выполняется
0
|
7345 / 6271 / 2852
Регистрация: 14.04.2014
Сообщений: 27,158
|
|
22.12.2014, 21:51 | 6 |
А toch_resh() какой тип возвращает?
0
|
3 / 2 / 3
Регистрация: 09.05.2014
Сообщений: 60
|
||||||
23.12.2014, 14:55 [ТС] | 7 | |||||
0
|
7345 / 6271 / 2852
Регистрация: 14.04.2014
Сообщений: 27,158
|
|
23.12.2014, 18:06 | 8 |
Дело в abs(), есть 2 разновидности. Та, которая в cstdlib, возвращает целое. Используй fabs().
0
|
3 / 2 / 3
Регистрация: 09.05.2014
Сообщений: 60
|
|||||||||||||||||||||||||||||||
23.12.2014, 21:24 [ТС] | 9 | ||||||||||||||||||||||||||||||
не использую cstdlib, подключаю только
и как на тип возвращаемого функцией значения влияют используемы в функции переменные по вашему ответу получается что abs имеет тип int, если в качестве переменной используется переменная типа double
это вообще возможно? (о перегрузке функций я знаю но тут никая перегрузка не поможет не может существовать 2 функций с одинаковым списком параметров, ведь
0
|
7345 / 6271 / 2852
Регистрация: 14.04.2014
Сообщений: 27,158
|
|
23.12.2014, 22:18 | 10 |
![]() Решение
iostream, например, может подключать, даже если ты не указал это явно.
Я предположил, что дело в abs(), потому что результат явно целый получается, берётся целая часть. Замени на fabs() и посмотри, что будет.
1
|
3 / 2 / 3
Регистрация: 09.05.2014
Сообщений: 60
|
|
23.12.2014, 22:39 [ТС] | 11 |
хммм всё заработало, и без привидения типов, но как ни странно ничего не менял в коде кроме того что удалил привидение к типу double, может просто из-за того что комп долго не перезагружал(порядка двух недель) такая ошибка и появилась
0
|
7345 / 6271 / 2852
Регистрация: 14.04.2014
Сообщений: 27,158
|
|
23.12.2014, 23:02 | 12 |
fabs() проверил?
Перезагрузка тут не причём.
0
|
3 / 2 / 3
Регистрация: 09.05.2014
Сообщений: 60
|
|
24.12.2014, 02:32 [ТС] | 13 |
всё заработало с abs
перезагрузка может и помочь, в прошлый раз когда у меня отказывалось выводить значения переменных в программе помогла, я виндумз уже 3 с лишним года не переустанавливал, да и мусора сейчас в нём много fabs работает
0
|
24.12.2014, 02:32 | |
Помогаю со студенческими работами здесь
13
Сортировка выводимых из БД данных Замена выводимых данных Нумерация данных, выводимых из БД
Нарисовать на плоскости (x,y) область, в которой и только в которой истинно логическое выражение abs(x)>abs(y) std::abs vs global abs Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |