Сообщение Re[7]: Как провести вычисление только в рамках типа float, а от 02.12.2016 8:29
Изменено 02.12.2016 8:30 Sinix
Здравствуйте, oziro, Вы писали:
O>Короче, с нулем надо сравнивать с указанной оценкой — это, наверно, всегда. Ну, или делать умолчание на диапазон типа 1e-9 .. 1e9 , но всегда понимать, что тогда оно не будет работать во многих случаях, а это верные грабли, потому что забудут и будет использовать. Поэтому IsZero с доп. параметром-оценкой.
Ну да. На практике это всё сводится к вристикам, которые отлично работают с _конкретными_ сценариями, и фейлятся на всех остальных.
К примеру, для фиксированного диапазона значений с примерно одним порядком величин может сработать абсолютная погрешность где-нибудь в одну миллионную от max value.
Где-то приходится вводить комбо из относительной и абсолютных погрешностей, для каких-то значений в итоге проще может оказаться с decimal работать и округлять до n-го знака после запятой…
Пожалуй, единственное, чего я ещё не видел — схемы сравнения, которая бы устраивала всех
O>Короче, с нулем надо сравнивать с указанной оценкой — это, наверно, всегда. Ну, или делать умолчание на диапазон типа 1e-9 .. 1e9 , но всегда понимать, что тогда оно не будет работать во многих случаях, а это верные грабли, потому что забудут и будет использовать. Поэтому IsZero с доп. параметром-оценкой.
Ну да. На практике это всё сводится к вристикам, которые отлично работают с _конкретными_ сценариями, и фейлятся на всех остальных.
К примеру, для фиксированного диапазона значений с примерно одним порядком величин может сработать абсолютная погрешность где-нибудь в одну миллионную от max value.
Где-то приходится вводить комбо из относительной и абсолютных погрешностей, для каких-то значений в итоге проще может оказаться с decimal работать и округлять до n-го знака после запятой…
Пожалуй, единственное, чего я ещё не видел — схемы сравнения, которая бы устраивала всех
Re[7]: Как провести вычисление только в рамках типа float, а
Здравствуйте, oziro, Вы писали:
O>Короче, с нулем надо сравнивать с указанной оценкой — это, наверно, всегда. Ну, или делать умолчание на диапазон типа 1e-9 .. 1e9 , но всегда понимать, что тогда оно не будет работать во многих случаях, а это верные грабли, потому что забудут и будет использовать. Поэтому IsZero с доп. параметром-оценкой.
Ну да. На практике это всё сводится к эвристикам, которые отлично работают с _конкретными_ сценариями, и фейлятся на всех остальных.
К примеру, для фиксированного диапазона значений с примерно одним порядком величин может сработать абсолютная погрешность где-нибудь в одну миллионную от max value.
Где-то приходится вводить комбо из относительной и абсолютных погрешностей, для каких-то значений в итоге проще может оказаться с decimal работать и округлять до n-го знака после запятой…
Пожалуй, единственное, чего я ещё не видел — схемы сравнения, которая бы устраивала всех
O>Короче, с нулем надо сравнивать с указанной оценкой — это, наверно, всегда. Ну, или делать умолчание на диапазон типа 1e-9 .. 1e9 , но всегда понимать, что тогда оно не будет работать во многих случаях, а это верные грабли, потому что забудут и будет использовать. Поэтому IsZero с доп. параметром-оценкой.
Ну да. На практике это всё сводится к эвристикам, которые отлично работают с _конкретными_ сценариями, и фейлятся на всех остальных.
К примеру, для фиксированного диапазона значений с примерно одним порядком величин может сработать абсолютная погрешность где-нибудь в одну миллионную от max value.
Где-то приходится вводить комбо из относительной и абсолютных погрешностей, для каких-то значений в итоге проще может оказаться с decimal работать и округлять до n-го знака после запятой…
Пожалуй, единственное, чего я ещё не видел — схемы сравнения, которая бы устраивала всех