Objective C – Vérification flottante pour nan

J’ai une variable ( float slope ) qui aura parfois une valeur de nan quand elle est imprimée car une division par 0 se produit parfois.

J’essaie de faire un autre si cela se produit. Comment puis je faire ça? if (slope == nan) ne semble pas fonctionner.

Deux manières, plus ou moins équivalentes:

 if (slope != slope) { // handle nan here } 

Ou

 #include  ... if (isnan(slope)) { // handle nan here } 

( man isnan vous donnera plus d’informations, ou vous pouvez tout lire dans le standard C)

Alternativement, vous pouvez détecter que le dénominateur est nul avant de diviser (ou utiliser atan2 si vous voulez simplement utiliser atan sur la pente au lieu d’effectuer d’autres calculs).

Rien n’est égal à NaN – y compris NaN lui-même. Alors cochez x != x

  if(isnan(slope)) { yourtextfield.text = @""; //so textfield value will be empty ssortingng if floatvalue is nan } else { yourtextfield.text = [NSSsortingng ssortingngWithFormat:@"%.1f",slope]; } 

J’espère que cela fonctionnera pour vous.

Dans Swift, vous devez faire slope.isNaN pour vérifier s’il s’agit d’un NaN.