Por que esse código às vezes retorna Nan?
Pergunta
Isso geralmente retorna NAN ("não um número"), dependendo da entrada:
#define PI 3.1415f
GLfloat sineEaseIn(GLfloat ratio) {
return 1.0f-cosf(ratio * (PI / 2.0f));
}
Tentei fazer do Pi alguns dígitos menores para ver se isso ajudaria. Sem dados. Então eu pensei que poderia ser uma incompatibilidade de dados de dados, mas flutuador e Glfloat parece ser equivalente:
GL.H
typedef float GLfloat;
math.h
extern float cosf( float );
Isso é um problema de elenco?
Solução
Eu suspeito que um dos seguintes está em andamento:
- Seu valor de entrada para
ratio
pode não ser o que você espera que seja, eratio
em si é possivelmenteNaN
- a
cosf
que você está ligando não é o quemath.h
Caso contrário, não parece haver nada de errado com sua expressão.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow