Информация об изменениях

Сообщение Re[7]: Как провести вычисление только в рамках типа float, а от 02.12.2016 8:29

Изменено 02.12.2016 8:30 Sinix

Здравствуйте, oziro, Вы писали:

O>Короче, с нулем надо сравнивать с указанной оценкой — это, наверно, всегда. Ну, или делать умолчание на диапазон типа 1e-9 .. 1e9 , но всегда понимать, что тогда оно не будет работать во многих случаях, а это верные грабли, потому что забудут и будет использовать. Поэтому IsZero с доп. параметром-оценкой.


Ну да. На практике это всё сводится к вристикам, которые отлично работают с _конкретными_ сценариями, и фейлятся на всех остальных.

К примеру, для фиксированного диапазона значений с примерно одним порядком величин может сработать абсолютная погрешность где-нибудь в одну миллионную от max value.

Где-то приходится вводить комбо из относительной и абсолютных погрешностей, для каких-то значений в итоге проще может оказаться с decimal работать и округлять до n-го знака после запятой…

Пожалуй, единственное, чего я ещё не видел — схемы сравнения, которая бы устраивала всех
Re[7]: Как провести вычисление только в рамках типа float, а
Здравствуйте, oziro, Вы писали:

O>Короче, с нулем надо сравнивать с указанной оценкой — это, наверно, всегда. Ну, или делать умолчание на диапазон типа 1e-9 .. 1e9 , но всегда понимать, что тогда оно не будет работать во многих случаях, а это верные грабли, потому что забудут и будет использовать. Поэтому IsZero с доп. параметром-оценкой.


Ну да. На практике это всё сводится к эвристикам, которые отлично работают с _конкретными_ сценариями, и фейлятся на всех остальных.

К примеру, для фиксированного диапазона значений с примерно одним порядком величин может сработать абсолютная погрешность где-нибудь в одну миллионную от max value.

Где-то приходится вводить комбо из относительной и абсолютных погрешностей, для каких-то значений в итоге проще может оказаться с decimal работать и округлять до n-го знака после запятой…

Пожалуй, единственное, чего я ещё не видел — схемы сравнения, которая бы устраивала всех