Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
AD |
22.4.2008, 11:40
Сообщение
#1
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17
|
Как правильно отловить значение double-переменной, равное indefinite? Т.е. неправильное значение как отловить?
|
|
|
|
|
Andrew Selivanov |
22.4.2008, 14:47
Сообщение
#2
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 249 Регистрация: 9.10.2007 Из: Москва Пользователь №: 3 Спасибо сказали: 15 раз(а) Репутация: 6
|
Цитата(AD @ 22.4.2008, 12:40) Link Как правильно отловить значение double-переменной, равное indefinite? Т.е. неправильное значение как отловить? IMHO лучше проверить аргумент перед тем как отправлять его в функцию, но если ты хочешь именно отловить ошибку, посмотри в сторону matherr: Link |
|
|
|
|
AD |
22.4.2008, 15:02
Сообщение
#3
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17
|
Цитата(Andrew Selivanov @ 22.4.2008, 15:47) Link Цитата(AD @ 22.4.2008, 12:40) Link Как правильно отловить значение double-переменной, равное indefinite? Т.е. неправильное значение как отловить? IMHO лучше проверить аргумент перед тем как отправлять его в функцию, но если ты хочешь именно отловить ошибку, посмотри в сторону matherr: Link Спасибо, но я уже нашел: функция _isnan(double number)! |
|
|
|
|
Andrew Selivanov |
22.4.2008, 16:35
Сообщение
#4
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 249 Регистрация: 9.10.2007 Из: Москва Пользователь №: 3 Спасибо сказали: 15 раз(а) Репутация: 6
|
Цитата(AD @ 22.4.2008, 16:02) Link Цитата(Andrew Selivanov @ 22.4.2008, 15:47) Link Цитата(AD @ 22.4.2008, 12:40) Link Как правильно отловить значение double-переменной, равное indefinite? Т.е. неправильное значение как отловить? IMHO лучше проверить аргумент перед тем как отправлять его в функцию, но если ты хочешь именно отловить ошибку, посмотри в сторону matherr: Link Спасибо, но я уже нашел: функция _isnan(double number)! Прикольно, я вначале не понял, что имелось ввиду Я о такой функции не знал, но поинтересовался и вот что написано в хидере math.h по этому поводу (#define isnan вызывает нужную версию __isnan): Малось подзабыл, что тут что значит, но откопал неплохой мануал: Link Вообще говоря, таким хаком мы можем посмотреть не только NaN, но и Normal, Infinity итп. Цитата Content of ST(0) C3 C2 C0
Unsupported 0 0 0 NAN 0 0 1 Normal finite number 0 1 0 Infinity 0 1 1 Zero 1 0 0 Empty 1 0 1 Denormalized number 1 1 0 |
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 23.12.2025, 2:20 |