Тип C++ с плавающей запятой, который не использует научную запись для представления очень маленьких значений?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Тип C++ с плавающей запятой, который не использует научную запись для представления очень маленьких значений?

Сообщение Anonymous »

Я пишу алгоритм, который занимается преобразованиями логит-нормальных распределений, которые имеют характеристику, заключающуюся в том, что при достаточно высоких сигмах/средних значения могут быть очень сильно «сжаты» к краям в точках 0 и 1. Я столкнулся с проблемой, когда значения, которые должны быть разными, конфликтуют, поскольку двойник C++ не может представлять достаточное количество цифр. Например, я применяю сигмовидную/логистическую функцию к двум достаточно высоким, но разным значениям, результат идентичен, хотя этого не должно быть, если бы двойные значения могли обеспечивать более высокую точность.
Я могу справьтесь с этим, объединив образцы, которые сталкиваются с одним и тем же значением. Но проблема в том, что около 1 происходит коллизия, потому что числа представлены так: 0,999999999953, например. Но около 0 этого не происходит, потому что C++ начинает представлять значения в научной записи, например: 0,12949384e-300. Последний может обеспечить гораздо более высокую точность, поэтому здесь не происходит коллизий. Но мне нужно симметричное поведение для обоих значений вокруг 0 ​​и 1, чтобы гарантировать, что результат вычисляется одинаково с обеих сторон.
Есть ли в C++ такой тип, который не выполняет автоматическое вычисление результата? перейти на научные обозначения при представлении чрезвычайно малых величин? То есть я могу добиться того же поведения около 0, что и около 1?

Подробнее здесь: https://stackoverflow.com/questions/735 ... ent-very-s
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»