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

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

Войти
Регистрация
Восстановить пароль
 
Uefa
0 / 0 / 0
Регистрация: 24.05.2014
Сообщений: 5
#1

Разные результаты при расчетах с float и double - C++

24.05.2014, 18:01. Просмотров 440. Ответов 5
Метки нет (Все метки)

Здравствуйте! Почему при расчете с float и 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
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
 
void main ()
{
    float a=1000, b=0.0001, c, d, e, f, g;
    c = pow((a+b), 2);
    d = pow(a, 2); 
    e = 2*a*b;
    f = pow(b, 2);
    g = (c - (d + e))/f;
    cout << g << "\n";
 
    double A=1000, B=0.0001, C, D, E, F, G;
    C = pow((A+B), 2);
    D = pow(A, 2);
    E = 2*A*B;
    F = pow(B, 2);
    G = (C - (D + E))/F;
    cout << G << "\n";
 
    system("pause");
};
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2014, 18:01     Разные результаты при расчетах с float и double
Посмотрите здесь:

Почему при преобразования из float в double коверкается число? - C++
float fll=34.23; cout &lt;&lt; &quot; fll=&quot;&lt;&lt; fll; //Вот тут я ввожу double dub; dub = (double)fll;cout&lt;&lt;&quot; dub=&quot;&lt;&lt;dub; // А вот тут оно уже :...

Разные результаты программы при постоянных входных значениях - C++
Доброго времени суток! Столкнулся с такой проблемой - ввожу одни и те же значения в исходный массив. Запускаю программу - выдает один...

Вычислить значение выражения при различных вещественных типах данных (float и double) - C++
Решите пожалуйста =* Вычислить значение выражения при различных вещественных типах данных (float и double). Вычисления следует выполнять...

OpenMP при распараллеливании цикла иногда выдает разные результаты - C++
Доброго времени суток, ув. форум! Я новичек и в С++ и в OpenMP Играюсь со следующей программкой для вычисления Пи: #include...

float double int - C++
Доброй ночи, препод совсем запарил, то ему не так, то ему не эдак. // 8.2.cpp: определяет точку входа для консольного приложения. // ...

Float/double IEEE754 - C++
Доброго вечера! Как я понимаю на вычисления с плавающей точкой влияет процессор, и компилятор языка. Как узнать поддерживает ли...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YouDoItWrong
46 / 46 / 7
Регистрация: 29.10.2011
Сообщений: 154
24.05.2014, 18:10     Разные результаты при расчетах с float и double #2
http://docs.oracle.com/cd/E19957-01/..._goldberg.html
Uefa
0 / 0 / 0
Регистрация: 24.05.2014
Сообщений: 5
24.05.2014, 18:13  [ТС]     Разные результаты при расчетах с float и double #3
Английским к сожалению не владею, не могли бы вы хотя бы кратко рассказать из-за чего такая разница в результатах?
YouDoItWrong
46 / 46 / 7
Регистрация: 29.10.2011
Сообщений: 154
24.05.2014, 18:21     Разные результаты при расчетах с float и double #4
Проблема в самом представлении числа с плавающей точкой. Некоторые числа с плавающей точкой нельзя "представить точно", а можно только получить приблизительный результат. Тип double имеет "двойную точность" представления (обычно 16-17 десятичные цифры точности), а float только 7-8. Про это есть много статей в интернете.
Uefa
0 / 0 / 0
Регистрация: 24.05.2014
Сообщений: 5
24.05.2014, 18:31  [ТС]     Разные результаты при расчетах с float и double #5
т.е. в данном примере я как раз и получил такое число, которое "нельзя представить точно"? А float и double просто по разному округлили?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2014, 18:34     Разные результаты при расчетах с float и double
Еще ссылки по теме:

Задание с float и double - C++
#include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int main() { setlocale(LC_ALL, &quot;Russian&quot;); float fA, fB, fC, fD,...

Преобразование в float и double - C++
Начал читать книгу Шилдта. В одном из его примеров было показано преобразование типов int в float. Но при компилировании выражения я...

Long float и double - C++
В чем отличие long float от double?

Типы данных float и double - C++
Ребята,пожалуйста помогите написать программу на С++ Вычислить значение выражения при различных вещественных типах данных (float и ...

double указатель и float матрица - C++
Очень срочно нужно. Есть 2-мерный массив типа float. Есть указатель на double. double *pj=NULL; float h; Как правильно...

Разница результатов float и double - C++
Объясните, пожалуйста, почему результаты для float и double отличаются? int main() { float a = 1000, b = 0.0001, c = pow(a - b,...


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

Или воспользуйтесь поиском по форуму:
YouDoItWrong
46 / 46 / 7
Регистрация: 29.10.2011
Сообщений: 154
24.05.2014, 18:34     Разные результаты при расчетах с float и double #6
Цитата Сообщение от Uefa Посмотреть сообщение
т.е. в данном примере я как раз и получил такое число, которое "нельзя представить точно"? А float и double просто по разному округлили
В целом - да.

Добавлено через 1 минуту
Вот еще статья на Хабре есть на эту тему.
http://habrahabr.ru/post/201066/
Yandex
Объявления
24.05.2014, 18:34     Разные результаты при расчетах с float и double
Ответ Создать тему
Опции темы

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