У меня есть число, которое может быть нулями. Я делю на это число, поэтому я хочу проверить, является ли оно нулевым, чтобы предотвратить NaN и бесконечность. Возможно ли, что я все еще создаю NaNs/бесконечность из-за ошибок округления в разделе?Может деление ненулевым по-прежнему создавать нан/бесконечность
double x; // might be zero
double y;
if(x != 0) return y/x;
EDIT
Спасибо за ответы. Тогда я добавлю некоторые подзапросы.
1) если ни x, ни y не являются NaN/+ inf или -inf, будет ли разделение, результатом которого является -inf/+ inf, больше циклов процессора или любого другого нежелательного поведения? (Может ли это сбой?)
2) есть ли способ предотвратить деление от бесконечности? Использование смещений и т. Д.
они могут быть бесконечности или даже нан – EFenix
Если 'y' уже NaN, то результат также будет NaN. –
Добавляем больше вопросов после того, как кто-то уже опубликовал ответ (3, в данном случае) невелик - он делает эти ответы незавершенными, хотя они не были, когда они были написаны. –