Mam numer, który może być zerowy. Dzielę się przez tę liczbę, więc chcę sprawdzić, czy jest zero, aby zapobiec NaN i nieskończoności. Czy to możliwe, że nadal tworzę NaN/nieskończoność z powodu błędów zaokrąglania w obrębie podziału?Czy podział przez niezerowy nadal tworzy nan/infinity
double x; // might be zero
double y;
if(x != 0) return y/x;
EDIT
Dzięki za odpowiedzi. Dodam wtedy kilka pytań.
1) zakładając, że ani x, ani y nie jest NaN/+ inf lub -inf, czy podział, który powoduje -inf/+ inf powoduje więcej cykli procesora lub jakiekolwiek inne niepożądane zachowanie? (Czy może się zawiesić?)
2) Czy istnieje sposób, aby zapobiec podziałowi w wyniku nieskończoności? Używanie przesunięć i tak dalej.
mogą być nieskończoność lub nawet nan – EFenix
Jeśli 'y' jest już NaN, wówczas wynik będzie również NaN. –
Dodanie kolejnych pytań po tym, jak ktoś już opublikował odpowiedź (w tym przypadku 3) nie jest wspaniałe - sprawia, że odpowiedzi te wyglądają na niekompletne, chociaż nie były, gdy zostały napisane. –