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

Убрать округление double - C++

Восстановить пароль Регистрация
 
Lazzzy Panda
0 / 0 / 0
Регистрация: 27.02.2014
Сообщений: 16
Завершенные тесты: 1
27.02.2014, 18:20     Убрать округление double #1
Доброго времени суток!
Недавно начав самостоятельно изучать С++, я пыталась выполнить лабораторную работу по созданию программы для вычисления некоторой формулы. Visual Studio не ругается на код программы, что-то там считает при разных входных данных, но вот незадача: при сравнении результатов вычислений в Mathcad'е и той программе, которую я написала, эти результаты не совпадают начиная с сотых. Попыталась упростить формулу до нельзя. Все равно такой же результат. Подскажите, пожалуйста, решение моей проблемы(если оно вообще есть). (был услышан вариант, что double округляет результат, при том, что мне округлять ничего не надо, но не факт)

Код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include "stdafx.h"
#include <iostream> ;
#include <conio.h>;
#include <math.h>;
#include <locale>
using namespace std;
 
int main()
{
    setlocale(0, "");
    double m, t, c, b, f, d=0.3;
    cout << "Введите значение m=";
    cin >> m;
    cout << "Введите значение t=";
    cin >> t;
    cout << "Введите значение c=";
    cin >> c;
    cout << "Введите значение b=";
    cin >> b;
        double q = (t-1);
        double w = tan(q);
        double e = m*w;
        double y = pow(m,b);
        double u = c*sin(t);
        double o = fabs(u/y);
    v = e+o;
    f = pow(v, d);
    cout << "f = " << f;
    _getch();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2014, 18:20     Убрать округление double
Посмотрите здесь:

Округление Long double. C++
double округление с точность до N знаков C++
Округление double C++
C++ printf. Округление чисел типа double
C++ Как убрать округление
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Catstail
Модератор
 Аватар для Catstail
21493 / 10246 / 1669
Регистрация: 12.02.2012
Сообщений: 17,129
27.02.2014, 18:28     Убрать округление double #2
Округляет не double... Округляет cout при печати!
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
27.02.2014, 18:34     Убрать округление double #3
Тут спасут
C++
1
std::setprecision(20) << std::fixed

Вместо 20 - это я использовала. Можете увеличить точность.
Catstail
Модератор
 Аватар для Catstail
21493 / 10246 / 1669
Регистрация: 12.02.2012
Сообщений: 17,129
27.02.2014, 18:39     Убрать округление double #4
Вот так можно задать бОльшее число цифр после точки:

C++
1
cout << setprecision(15) << 1.0/3.0 << endl;
только не забудь подключить:

C++
1
#include <iomanip.h>
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11836 / 6815 / 770
Регистрация: 27.09.2012
Сообщений: 16,899
Записей в блоге: 2
Завершенные тесты: 1
27.02.2014, 18:40     Убрать округление double #5
Цитата Сообщение от Catstail Посмотреть сообщение
только не забудь подключить:
ну судя по тому, что используется <iostream>, то подключать нужно <iomanip>
Catstail
Модератор
 Аватар для Catstail
21493 / 10246 / 1669
Регистрация: 12.02.2012
Сообщений: 17,129
27.02.2014, 18:52     Убрать округление double #6
Цитата Сообщение от Croessmah Посмотреть сообщение
то подключать нужно <iomanip>
- я так и написал.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11836 / 6815 / 770
Регистрация: 27.09.2012
Сообщений: 16,899
Записей в блоге: 2
Завершенные тесты: 1
27.02.2014, 18:57     Убрать округление double #7
Цитата Сообщение от Catstail Посмотреть сообщение
- я так и написал.
у вас <iomanip.h>, а он устарел
Lazzzy Panda
0 / 0 / 0
Регистрация: 27.02.2014
Сообщений: 16
Завершенные тесты: 1
28.02.2014, 03:57  [ТС]     Убрать округление double #8
Catstail, спасибо, что просвещаете незнающих)
Спасибо, за ответы, я опробую их в деле =)
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
28.02.2014, 11:02     Убрать округление double #9
Цитата Сообщение от Тамика Посмотреть сообщение
std::setprecision(20)
А вы про машинный "0" не забыли?
Catstail
Модератор
 Аватар для Catstail
21493 / 10246 / 1669
Регистрация: 12.02.2012
Сообщений: 17,129
28.02.2014, 12:25     Убрать округление double #10
Цитата Сообщение от mustimur Посмотреть сообщение
А вы про машинный "0" не забыли?
- я об этом никогда не забываю - у меня (15)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.02.2014, 13:55     Убрать округление double
Еще ссылки по теме:

Округление числа double до десятых, до сотых C++
Почему мы пишем double x (double y)? а не через запятую double x,y C++
Как убрать округление? C++

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

Или воспользуйтесь поиском по форуму:
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
28.02.2014, 13:55     Убрать округление double #11
Catstail, Я не про Вас, у Вас все в порядке
Yandex
Объявления
28.02.2014, 13:55     Убрать округление double
Ответ Создать тему
Опции темы

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