|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.05.2014, 12:04 | #1 |
Пользователь
Регистрация: 25.08.2013
Сообщений: 59
|
(с++) float и double. Разные результаты.
Здравствуйте! При расчете одного и того же выражения, но с переменными разных типов данных (float и double), получаются разные результаты. Почему?
Код HTML:
#include <iostream> #include <stdio.h> #include <math.h> using namespace std; void main () { float a=1000, b=0.0001, c, d, e; c = pow((a+b), 2); d = pow(a, 2) + 2*a*b; e = (c - d)/pow(b, 2); cout << e << "\n"; double A=1000, B=0.0001, C, D, E; C = pow((A+B), 2); D = pow(A, 2) + 2*A*B; E = (C - D)/pow(B, 2); cout << E << "\n"; system("pause"); }; |
20.05.2014, 12:09 | #2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,695
|
|
20.05.2014, 12:38 | #3 |
C/C++, Java
Участник клуба
Регистрация: 28.03.2012
Сообщений: 1,680
|
p51x дал отличную ссылку. А вообще на сколько я помню в зависимости от того какая точность нужна и используемого пространства под переменную... (32 или 64 бита), выбираешь необходимый тип (float - одинарная точность или double - двойная точность.) В статье по ссылке все неплохо описано.
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости" Сложность - враг простоты и удобства! |
20.05.2014, 12:48 | #4 | |
Пользователь
Регистрация: 25.08.2013
Сообщений: 59
|
Цитата:
Код HTML:
#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 << e << " " << 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 << E << " " << G << "\n"; system("pause"); }; |
|
20.05.2014, 12:50 | #5 |
C/C++, Java
Участник клуба
Регистрация: 28.03.2012
Сообщений: 1,680
|
У float и double точность разная....
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости" Сложность - враг простоты и удобства! |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Конвертация single float в double float | kypck | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 10 | 23.04.2012 00:22 |
Float и Double | crawter | C# (си шарп) | 1 | 19.03.2012 15:46 |
Идентичные функции выдают разные результаты | Cannibal | Помощь студентам | 6 | 21.04.2011 18:29 |
Разные компиляторы - разные результаты | Кипящий чайник | Общие вопросы C/C++ | 3 | 16.07.2010 14:54 |
float или double? | zgest | Общие вопросы C/C++ | 10 | 20.03.2010 15:14 |