このコードが時々 NaN を返すのはなぜですか?
質問
これは、入力に応じて NAN (「非数値」) を返すことがよくあります。
#define PI 3.1415f
GLfloat sineEaseIn(GLfloat ratio) {
return 1.0f-cosf(ratio * (PI / 2.0f));
}
それが役立つかどうかを確認するために、PI を数桁小さくしてみました。サイコロはありません。データ型の不一致かと思いましたが、 浮く そして グフロート 同等のようです:
GL.H
typedef float GLfloat;
math.h
extern float cosf( float );
これはキャスティングの問題でしょうか?
解決
次のいずれかが進行中であると思われます。
- 入力値を
ratio
あなたが期待しているものではないかもしれません、そしてratio
それ自体はおそらくNaN
- の
cosf
あなたが電話しているのは中の人ではありませんmath.h
それ以外の場合は、表現に問題はないようです。
所属していません StackOverflow