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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Lazzzy Panda
5 / 5 / 3
Регистрация: 27.02.2014
Сообщений: 34
Завершенные тесты: 1
#1

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

27.02.2014, 18:20. Просмотров 1240. Ответов 10
Метки нет (Все метки)

Доброго времени суток!
Недавно начав самостоятельно изучать С++, я пыталась выполнить лабораторную работу по созданию программы для вычисления некоторой формулы. 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2014, 18:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Убрать округление double (C++):

Округление double - C++
Короче ввожу число 1.05 в Debug показывает его, как 1.004999999999999999995663191310058 вот как эту чушь убрать, у меня задача из-за...

Округление Double - C++
Использую Double, возникают при тонких расчетах проблемы с округлением. Какие есть стандартные способы решения? :)

Округление Long double. - C++
Нужно округлить число типа long double в меньшую сторону т.е. просто обнулить всю дробную часть, но при этом надо сохранить эту самую...

double округление с точность до N знаков - C++
Добрый день, помогите пожалуста какую надо использовать функцию чтобы была возможность округлить значение числа double с точностью до N...

Форматирование вывода и округление double - C++
Доброго времени суток. Я много подобных тем полистал. Но не нашел ответа. Мне нужно написать функцию, которая бы получала double число,...

printf. Округление чисел типа double - C++
Пытаюсь писать программу для округления чисел типа double. // okruglenie double.cpp: определяет точку входа для консольного...

10
Catstail
Модератор
22732 / 11101 / 1797
Регистрация: 12.02.2012
Сообщений: 18,297
27.02.2014, 18:28 #2
Округляет не double... Округляет cout при печати!
0
Тамика
Котовчанин
912 / 455 / 145
Регистрация: 16.02.2010
Сообщений: 3,144
Записей в блоге: 27
27.02.2014, 18:34 #3
Тут спасут
C++
1
std::setprecision(20) << std::fixed

Вместо 20 - это я использовала. Можете увеличить точность.
1
Catstail
Модератор
22732 / 11101 / 1797
Регистрация: 12.02.2012
Сообщений: 18,297
27.02.2014, 18:39 #4
Вот так можно задать бОльшее число цифр после точки:

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

C++
1
#include <iomanip.h>
1
Croessmah
Эксперт CЭксперт С++
13514 / 7672 / 866
Регистрация: 27.09.2012
Сообщений: 18,887
Записей в блоге: 3
Завершенные тесты: 1
27.02.2014, 18:40 #5
Цитата Сообщение от Catstail Посмотреть сообщение
только не забудь подключить:
ну судя по тому, что используется <iostream>, то подключать нужно <iomanip>
0
Catstail
Модератор
22732 / 11101 / 1797
Регистрация: 12.02.2012
Сообщений: 18,297
27.02.2014, 18:52 #6
Цитата Сообщение от Croessmah Посмотреть сообщение
то подключать нужно <iomanip>
- я так и написал.
0
Croessmah
Эксперт CЭксперт С++
13514 / 7672 / 866
Регистрация: 27.09.2012
Сообщений: 18,887
Записей в блоге: 3
Завершенные тесты: 1
27.02.2014, 18:57 #7
Цитата Сообщение от Catstail Посмотреть сообщение
- я так и написал.
у вас <iomanip.h>, а он устарел
0
Lazzzy Panda
5 / 5 / 3
Регистрация: 27.02.2014
Сообщений: 34
Завершенные тесты: 1
28.02.2014, 03:57  [ТС] #8
Catstail, спасибо, что просвещаете незнающих)
Спасибо, за ответы, я опробую их в деле =)
0
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
28.02.2014, 11:02 #9
Цитата Сообщение от Тамика Посмотреть сообщение
std::setprecision(20)
А вы про машинный "0" не забыли?
0
Catstail
Модератор
22732 / 11101 / 1797
Регистрация: 12.02.2012
Сообщений: 18,297
28.02.2014, 12:25 #10
Цитата Сообщение от mustimur Посмотреть сообщение
А вы про машинный "0" не забыли?
- я об этом никогда не забываю - у меня (15)
0
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
28.02.2014, 13:55 #11
Catstail, Я не про Вас, у Вас все в порядке
0
28.02.2014, 13:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.02.2014, 13:55
Привет! Вот еще темы с ответами:

Округление числа double до десятых, до сотых - C++
Приветствую всех, double y=3.1415; нужно округлить y до десятых и сотых, записать в переменные соответственно. т.е. получить 0.1 и...

Как убрать округление? - C++
Доброго времени суток. Компилятор Dev-c++ выдает при делении целое вместо дробного. Пробовал setf, usetf, precision. Чёта не получается...

Как убрать округление - C++
Ребят не подскажите как убрать округление? Например когда я ввожу 55555555555555555555, то он должен взять просто первые 16 символов, а он...

Как убрать округление косинуса в программе - C++
Здравствуйте, вот программа здесь массив забивается по формуле, но происходит округление чисел с 0.9999... до 1 можно ли это как-то...


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

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

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