Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2010, 14:27   #1
zgest
Пользователь
 
Регистрация: 23.03.2009
Сообщений: 15
По умолчанию float или double?

Слышал, что лучше пользоваться даблом, а не флоатом. Почему?
Есть разница, кроме кол-ва выделяемых бит?
zgest вне форума Ответить с цитированием
Старый 19.03.2010, 14:45   #2
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

точность выше, занимает больше. имхо все
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 19.03.2010, 16:28   #3
Card1nal
Пользователь
 
Регистрация: 31.10.2009
Сообщений: 44
По умолчанию

ну, во первых, float существует не во всех языках, хотя на это как-то...
Во вторых, несмотря на то, что у double выше точность, операции с ним выполняются быстрее.
Card1nal вне форума Ответить с цитированием
Старый 19.03.2010, 16:44   #4
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Card1nal
Цитата:
ну, во первых, float существует не во всех языках, хотя на это как-то...
на название ветки посмотри

Цитата:
Во вторых, несмотря на то, что у double выше точность, операции с ним выполняются быстрее.
во-первых - сомнительно. во-вторых, зависит от конкретного процессора/архитектуры. если на x86 оба этих типа действительно приводятся к extended, то разницы в скорости не будет
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 19.03.2010, 17:00   #5
Card1nal
Пользователь
 
Регистрация: 31.10.2009
Сообщений: 44
По умолчанию

Цитата:
Сообщение от pproger Посмотреть сообщение
2Card1nal

на название ветки посмотри
ога, но существет - то не только эта ветка)
Цитата:
Сообщение от pproger Посмотреть сообщение
во-первых - сомнительно. во-вторых, зависит от конкретного процессора/архитектуры. если на x86 оба этих типа действительно приводятся к extended, то разницы в скорости не будет
я использую i386-like процессор, и как то замерял) так вот, float медленнее на 30% примерно. (хотя мб это внутренняя фича gdb)
Card1nal вне форума Ответить с цитированием
Старый 19.03.2010, 17:13   #6
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Согласен с pproger'ом, производительность слишком зависит от архитектуры и используемого компилятора. У меня, например, операции над float выполняются быстрее, нежели над double.
Цитата:
ну, во первых, float существует не во всех языках, хотя на это как-то...
а double во всех? )
netrino вне форума Ответить с цитированием
Старый 19.03.2010, 21:02   #7
zgest
Пользователь
 
Регистрация: 23.03.2009
Сообщений: 15
По умолчанию

А float - это встроенный тип? Он описан в стандарте c++?
zgest вне форума Ответить с цитированием
Старый 19.03.2010, 21:09   #8
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от zgest Посмотреть сообщение
А float - это встроенный тип? Он описан в стандарте c++?
Безусловно.
netrino вне форума Ответить с цитированием
Старый 20.03.2010, 01:00   #9
proggramer
 
Регистрация: 23.02.2010
Сообщений: 3
По умолчанию )

Если ты програмируешь в BCPP ( к примеру 3.0), то, используя double, можна получить не очень коректные вычисления - у тебя после 5-7 знаков после запятой может появится мусор... но это если вычисления нужны очень точные... Поэтому в BCPP я пользуюсь исключительно старым и "добрым" float.
А если нуджаешься в очень точных вычислениях, то юзай Visual C, он прекрасно работает с double...
proggramer вне форума Ответить с цитированием
Старый 20.03.2010, 08:55   #10
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Цитата:
можна получить не очень коректные вычисления - у тебя после 5-7 знаков после запятой может появится мусор
Обычно, когда хотят получить очень точные результаты, используют совсем другие методы.

К стати, с чего вы взяли, что мусор появляется из-за типа данных, а не из-за неправильности или неточности самих вычислений?

Цитата:
А если нуджаешься в очень точных вычислениях, то юзай Visual C, он прекрасно работает с double...
Зато он long double приводит к типу double (за каким хреном, спрашивается? если мне нужен double, то я так и напишу)
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
E2015 Ambiguity between 'std::log(double)' and 'std::log(long double)' Namolem Помощь студентам 3 02.04.2011 20:22
float Артэс Общие вопросы C/C++ 8 10.12.2009 21:21
long double vs. double VoidMan Общие вопросы C/C++ 1 21.09.2009 18:45
float to int span4 SQL, базы данных 7 01.06.2009 10:57
Double/? Viteef Общие вопросы Delphi 6 25.07.2007 02:28