Здравствуйте, Лось Чтостряслось, Вы писали:
ЛЧ>>>нет такого числа QC>>Есть 3.399999999999 ? ЛЧ>типа того
Если мне склероз не изменяет, то если задано литералом, типа float X=3.4, то будет 3.4, а если результат операции, ну типа x = 34/10, то уже тогда — да, или 3.399999999999 или 3.40000000000001.
Здравствуйте, Dym On, Вы писали:
DO>Если мне склероз не изменяет, то если задано литералом, типа float X=3.4, то будет 3.4, а если результат операции, ну типа x = 34/10, то уже тогда — да, или 3.399999999999 или 3.40000000000001.
мне казалось некоторые значения в принципе не могут храниться в float
Здравствуйте, Лось Чтостряслось, Вы писали:
ЛЧ>мне казалось некоторые значения в принципе не могут храниться в float
И это понятно — float, как и другие числовые типы представлены фиксированным количеством бит, соответственно могут обестечить представление лишь какого-то конечного числа вариантов. Тогда как множество вещественных числел бесконечно на любом отрезке числовой прямой (для любой пары различных вещественных чисел всегда найдется третье вещественное число, которое будет больше одного и меньше другого).
--
Справедливость выше закона. А человечность выше справедливости.
Здравствуйте, Homunculus, Вы писали:
H>Так делают те, кто хотят сделать себя незаменимым в проекте и чтоб проект гикнулся после ухода того, кто так делает
Ещё так делают те, кто не любит писать документацию.
Здравствуйте, Лось Чтостряслось, Вы писали:
ЛЧ>мне казалось некоторые значения в принципе не могут храниться в float
Ну естественно, разрядная сетка не бесконечна.
от того, что с этим float делает движок. Если вообще ничего не делает, не сериализует и не преобразовывает, то тупо reinterpret_cast из float в int, и дальше побитно. Например, два 16-битных индекса.
Если движок что-то делает, то надо разбираться, что именно, и уже оттуда плясать. Например, если он преобразовывает эти теги строку и обратно, то надо смотреть, как там будет работать округление, что потеряется, а что нет.
Самый бронебойный вариант — вообще забить на тэги, и сделать хэш-таблицу от уникалього ID объекта, если он есть. По производительности будет вменяемо + большинство граблей это решение облетит на версту. Если нет unique id, то можно завести свою таблицу (линейную или хэш) и писать в этот float номер записи в этой таблице. Опять же надо смотреть, что там будет с точностью при сериализации.
Здравствуйте, pugv, Вы писали:
P>Здравствуйте, Maniacal, Вы писали:
M>>Только на 32-битной архитектуре.
P>Я на это и намекал. Качественно расставленные грабли. Не говоря уже о сериализации, что тоже упомянули ниже.
Грабли решаются static_assert-ом. А вообще, это из серии "быстро, дешево, качественно: выбери любые два". Качественный вариант — изучать/менять движок. Быстрый вариант — расставлять грабли и метить их флажками.
Здравствуйте, rg45, Вы писали:
R>А чтоб не зависеть от платформы, вместо адреса можно запихивать индекс в массиве. А в массив уже можно запихнуть все, что угодно, без ограничений на размер элемента.
Только может потребоваться какое-то дополнительное хранилище для массива. Мы ж не знаем, может эти float библиотека где-то в БД хранит между сессиями. Вообще, ТС мог бы добавить подробностей.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Здравствуйте, Homunculus, Вы писали:
H>Мне надо в числовой тэг объекта (float) запихнуть два числа. Номер объекта в некоем массиве, но еще и каждый объект по тегу должен знать а какой он из скольки.
H>Другими словами, например дробь 3/4 — содержит эту информацию — у нас как бы третий объект из четырех.
белиберда какая то массив объектов один или несколько ? если один — то дели номер (объекта) на длину массива и всё — нафига это хранить ?
H>Можно конечно использовать разряды. Например 3/4 зашифровать в 3004. Но может красивше есть решение?
сначала опиши задачу нормально
если несколько (с объектами) — то тут зависит от того, может ли размер массивов динамически меняться / есть ли многопоток ?
если нет, то введи поле id в объект и юзай чё нить типа Hashmap ..
Здравствуйте, xma, Вы писали:
xma>белиберда какая то массив объектов один или несколько ? если один — то дели номер (объекта) на длину массива и всё — нафига это хранить ?
Ага, "нихера не понял, но совет дам".
--
Справедливость выше закона. А человечность выше справедливости.
разумно предположить, что делает то, что можно, а то что нельзя — не делает, не?
если оно не NaN — выживет, а если не денормализованное — выживет даже если попадет в лапы какого-то убогого процессора. т.е выкинуть два варианта экспоненты, все остальное — наше, вопрос только чтобы точности хватило
Здравствуйте, Je suis Mamut, Вы писали:
JSM>разумно предположить, что делает то, что можно, а то что нельзя — не делает, не?
Правильно. Но можно быть точнее, вдруг делает лишь какое-то подмножество из допустимого.
JSM>если оно не NaN — выживет, а если не денормализованное — выживет даже если попадет в лапы какого-то убогого процессора. т.е выкинуть два варианта экспоненты, все остальное — наше, вопрос только чтобы точности хватило
А если оно не грузится в регистры, а только перекладывается в памяти, то может выжить в любом виде.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Здравствуйте, xma, Вы писали:
xma>можно подумать что ты (или кто то ещё) понял что он вообще хочет ? как изложил — такие и советы ..
По-крайней мере, настолько тупых ответов, как у тебя здесь ни у кого больше нет. Ты единственный отличился.
xma>не говоря уже (про тебя) о том — зачем нормальному высокооплачиваемому прогеру — топить за коммунизм ..
"люди" — всю Вселенную уже по полочкам разложили (на основе принципиальной неразличимости больше некоторого максимального числа уникальных Вселенных — через экран монитора (или любые иные цифровые интерфейсы)) ..
но коммунисты да, всегда считали себя "самыми умными" (c) — на деле по факту оказываясь самыми отсталыми ..
"люди" — всю Вселенную уже по полочкам разложили (на основе принципиальной неразличимости больше некоторого максимального числа уникальных Вселенных — через экран монитора (или любые иные цифровые интерфейсы)) .. xma>но коммунисты да, всегда считали себя "самыми умными" (c) — на деле по факту оказываясь самыми отсталыми ..
Не мороси, истеричка.
--
Справедливость выше закона. А человечность выше справедливости.