187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
1

Дробные числа - плавающая и фиксированная точки

05.12.2013, 17:19. Показов 7393. Ответов 9
Метки нет (Все метки)

Считал, что float - с фиксированной точкой, а double - с плавающей. То, что у float была точность для меня было доказательством, ведь, если точка плавающая, теоретически, можно под мантиссу оставить 1бит, а все остальное отдать на порядок. Да и то, что граф. API повсеместно использует float и редко double тоже мне как бы намекало, что вместо того, чтобы возиться с гуляющей запятой, лучше сложить с фиксированной и не париться -> больше производительность -> счастливее геймер.

Однако, вдруг, мозг сказал :"стоп",- и перевел float с английского на русский: "плавать; всплывать; держаться на поверхности воды" - тут меня накрыло.

Так что же всё-таки что и почему тогда два первых моих примера, что раньше были для меня доказательством, выполняются в обратном порядке (т.е., для числа с плавающей точкой)? Или, может, я неправильно понимаю, что значит фиксированная и плавающая точки?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.12.2013, 17:19
Ответы с готовыми решениями:

Фиксированная (плавающая) шапка сайта
Здравствуйте уважаемые форумчане! Я тут у вас совсем не давно, прошу сильно не бить если пишу пост...

Фиксированная (плавающая) шапка и скролинг
Доброго времени суток. Такой вопрос: фиксированную шапку я сделал но нужно чтобы ее можно было...

Цикл: В ячейки Excel записываются целые числа. Как исправить, чтобы числа были дробные?
Программа считает в цикле Y при заданных х и находит максимум и минимум функции. В ячейки Excel ...

Дробные числа, С++
Уважаемые знатоки, требуется ваша помощь. Передо мной стоит задача посчитать приблизительную сумму...

9
1368 / 591 / 199
Регистрация: 02.08.2011
Сообщений: 2,882
05.12.2013, 20:27 2
ru.wikipedia.org/wiki/Число_с_фиксированной_запятой
0
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
05.12.2013, 20:33  [ТС] 3
daslex, именно после прочтения оной я и задумался над переводом слова float и в конец запутался
0
Диссидент
Эксперт C
26846 / 16751 / 3672
Регистрация: 24.12.2010
Сообщений: 37,499
05.12.2013, 21:45 4
Цитата Сообщение от nexen Посмотреть сообщение
что значит фиксированная
Хороший пример - бухгалтерия. Можно считать в копейках (хотя на выходе нужны рубли). Сложение и вычитание проходит с песней. Как и умножение на обычный int. Но когда приходится умножать копейки на копейки, нужно уже результат разделить на 100. Но я не могу вообразить себе никакой реальной задачи, где бы эти "квадратные копейки" имели бы смысл. Может быть что-то из области статистики, всякие дисперсии и СКО?
ИМХО, последний популярный язык, который поддерживал понятие "фиксированной точки (запятой)" был PL/1
А float действительно плавает. Но не глубоко.
Короче - фиксированная точка - просто переход к другой системе измерения. Были мили - стали дюймы. И никаких других секретов там быть не должно.
1
1368 / 591 / 199
Регистрация: 02.08.2011
Сообщений: 2,882
05.12.2013, 21:51 5
Цитата Сообщение от nexen Посмотреть сообщение
Так что же всё-таки что и почему тогда два первых моих примера, что раньше были для меня доказательством, выполняются в обратном порядке (т.е., для числа с плавающей точкой)? Или, может, я неправильно понимаю, что значит фиксированная и плавающая точки?
вы сами спрашиваете и сами себе отвечаете.

Число с плавающей точкой (запятой) — форма представления действительных чисел, в которой число хранится в форме мантиссы и показателя степени. При этом число с плавающей точкой имеет фиксированную относительную точность и изменяющуюся абсолютную
Происхождение названия - Название «плавающая запятая» происходит от того, что запятая в позиционном представлении числа (десятичная запятая, или, для компьютеров, двоичная запятая — далее по тексту просто запятая) может быть помещена где угодно относительно цифр в строке (источник ru.wikipedia.org/wiki/Число_с_плавающей_запятой)
=================
Моими словами это как-то так: если взять число 123456, то в течении времени запятая может занимать любую позицию между цифрами, оставляя за собой несколько цифр, количество которых может разниться
=====================
Если смотреть на число с фиксированной точкой, то точность задается один раз и независимо от обстоятельств, после запятой всегда остается фиксированное число цифр.
======================
И, наверное, рассматривать все надо немного с другого ракурса. Не сточки зрения, что тип - это число с плавающей или фиксированной точкой, а с точки зрения, что тип float (double) может быть числом или с плавающей или с фиксированной точкой. И если подумать, то float хорошо подходит, но это не значит, что double не может выступать в этой роли.

я не могу быть уверен в своем ответе, но думаю это так.
0
Диссидент
Эксперт C
26846 / 16751 / 3672
Регистрация: 24.12.2010
Сообщений: 37,499
05.12.2013, 22:07 6
Цитата Сообщение от Байт Посмотреть сообщение
где бы эти "квадратные копейки" имели бы смысл.
Хотя вот. Вполне реально умножать копейки на килограммы (представленные в виде граммов!) и ПЛ-1 как бы брал эту задачу на себя. Я в свое время вдосталь намучился с этим, и предпочитаю контролировать ситуацию сам.
0
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
06.12.2013, 07:30  [ТС] 7
Байт, daslex, ну предположим, что я числа эти правильно понимал с их плавающей и фиксированной запятой. Но те два примера, что я привел в шапке темы, почему же них все забили? :'(
0
Модератор
Эксперт С++
12105 / 9776 / 5910
Регистрация: 18.12.2011
Сообщений: 26,246
06.12.2013, 09:47 8
В С++ с фиксированной точкой представлены только целые числа
(можете считать, что точка стоит после целой части, а дробная равна нулю).
А float и double - Числа с плавающей точкой, у которых целая часть равна нулю,
а фактическое положение запятой определяется показателем степени.
0
daslex
06.12.2013, 11:03
  #9

Не по теме:

я не понимаю, что значит: "у float была точность", double как и float ограничена (т.е. обладает определенной точностью)
я не понимаю, что значит: "

Цитата Сообщение от nexen Посмотреть сообщение
что вместо того, чтобы возиться с гуляющей запятой, лучше сложить с фиксированной и не париться
в графическом мире 3d без double очень быстро нарастают ошибки, в физических вычислениях где требуются вычисления очень малых с высокой точностью без double очень быстро нарастают ошибки. Есть много ситуаций в которых float неэффективно и наоборот.
я не понимаю, что значит: "да и то что граф"

поэтому игнорировал ваши примеры в шапке.

0
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
06.12.2013, 17:32  [ТС] 10
zss, daslex, в таком случае чем long float отличается от double?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.12.2013, 17:32
Помогаю со студенческими работами здесь

Дробные числа
Доброго времени суток! Проблема такова, я не знаю как работать с дробными числами. А теперь...

Дробные числа
пишу в Builder C++ нужно дробное число отображать в едите получается примерно так: double...

Дробные числа
Добрый вечер. Помогите мне пожалуйста в этом задании: Нужно создать класс Fraction для работы...

Дробные числа
Всем привет. Подскажите - почему то значения ver2 и ver3 считает, как целые числа. Почему? ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru