J'ai une variable (float slope
) qui aura parfois une valeur de nan lorsqu'il est imprimé car une division par 0 arrive parfois. J'essaie de faire un if-else pour quand cela arrive. Comment puis je faire ça? if (slope == nan)
ne semble pas fonctionner.Objectif C - contrôle flottant pour nan
Répondre
Deux façons, plus ou moins équivalentes:
if (slope != slope) {
// handle nan here
}
Ou
#include <math.h>
...
if (isnan(slope)) {
// handle nan here
}
(man isnan
vous donnera plus d'informations, ou vous pouvez lire tout cela dans la norme C)
Vous pouvez également détecter que le dénominateur est égal à zéro avant d'effectuer la division (ou utiliser atan2
si vous souhaitez utiliser atan
sur la pente au lieu de faire un autre calcul).
Si jamais je tombais sur' if (foo! = Foo) 'dans un code je laisserais sortir un" WTF "très audible. 'isnan' semble être une méthode * loin * plus claire et plus lisible. –
@Squeegy: à quelqu'un qui est familier avec le point flottant, ils lisent la même chose. Pour quelqu'un qui n'est pas, oui, 'isnan' est beaucoup plus clair. –
'slope! = Slope' est brillant. Merci! – JohnK
Rien n'est égal à NaN
- incluant NaN
lui-même. Donc, vérifiez x != x
.
Merci pour l'explication! – cdavidyoung
if(isnan(slope)) {
yourtextfield.text = @"";
//so textfield value will be empty string if floatvalue is nan
}
else
{
yourtextfield.text = [NSString stringWithFormat:@"%.1f",slope];
}
Espérons que cela fonctionnera pour vous.
Dans Swift, vous devez faire slope.isNaN
pour vérifier s'il s'agit d'un NaN.
- 1. Comment faire un contrôle flottant
- 2. Créer un contrôle "flottant" en C# (application WinForm) sans WPF
- 3. Setprecision() pour un nombre flottant en C++?
- 4. retour Synchronisé objectif-c
- 5. objectif-c
- 6. WPF DataGrid CellEditingTemplate avec contrôle flottant
- 7. Déplacer un contrôle à un endroit flottant
- 8. Tween une valeur dans iPhone objectif-C
- 9. Comment tracer un NaN en C++
- 10. Position CALayer contient NaN: [nan -0,5]
- 11. Objectif-C - Guide pour créer un graphe
- 12. Objectif C - Utilisation de deleteCharactersInRange pour NSMutableStrings
- 13. Objectif C - NSDictionary Question
- 14. Objectif C @property commentaires
- 15. objectif c iphone entiers
- 16. objectif c popen
- 17. objectif-c si déclaration
- 18. Objectif C Terminologie Aide
- 19. objectif c commande "say"
- 20. avertissements Xcode objectif-c
- 21. NaN Valeurs dans un champ flottant dans la base de données MSSQL
- 22. C#: Multiplier Décimal avec Flottant?
- 23. Chaîne Aide - Objectif C
- 24. problème objectif interrupteur C
- 25. Objectif C: délégués multiples
- 26. Propriété malloc objectif c
- 27. iphone, objectif c, xcode
- 28. objectif c Comparaison NSString
- 29. Objectif C Threading Question
- 30. objectif-c touch-events
duplication possible de [isNan dans l'objectif c] (http://stackoverflow.com/questions/2109257/isnan-in-objective-c) –
Objective-C pour float ou double: 'isnan (pente)'; Swift pour floatingPointType: 'slope.isNaN' –