Pourquoi ce code retourne parfois NaN?
Question
revient souvent NAN ( "Not A Number") en fonction de l'entrée:
#define PI 3.1415f
GLfloat sineEaseIn(GLfloat ratio) {
return 1.0f-cosf(ratio * (PI / 2.0f));
}
J'ai essayé de faire PI quelques petits chiffres pour voir si cela pouvait aider. Pas de dé. Ensuite, je pensais que ce serait peut-être une incompatibilité de type de données, mais float et GLfloat semblent être équivalentes:
gl.h
typedef float GLfloat;
math.h
extern float cosf( float );
Est-ce un problème de casting?
La solution
Je soupçonne que l'un des éléments suivants est en cours de réalisation:
- votre valeur d'entrée à
ratio
peut ne pas être ce que vous attendez qu'il soit, etratio
lui-même est peut-êtreNaN
-
cosf
que vous appelez est pas celuimath.h
Dans le cas contraire, il ne semble pas être quelque chose de mal avec votre expression.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow