لماذا يعيد هذا الرمز أحيانًا نان؟
سؤال
غالبًا ما يعيد هذا NAN ("ليس رقمًا") اعتمادًا على الإدخال:
#define PI 3.1415f
GLfloat sineEaseIn(GLfloat ratio) {
return 1.0f-cosf(ratio * (PI / 2.0f));
}
حاولت جعل Pi بضعة أرقام أصغر لمعرفة ما إذا كان ذلك سيساعد. لا النرد. ثم اعتقدت أنه قد يكون عدم تطابق نوع البيانات ، ولكن يطفو و glfloat يبدو أنه مكافئ:
GL.H
typedef float GLfloat;
الرياضيات
extern float cosf( float );
هل هذه قضية صب؟
المحلول
أظن أن أحد ما يلي هو على قدم وساق:
- قيمة الإدخال الخاصة بك إلى
ratio
قد لا يكون ما تتوقعه ، وratio
نفسها ربماNaN
- ال
cosf
أن التي تتصل بها ليست واحدة فيmath.h
خلاف ذلك ، لا يبدو أن هناك أي شيء خاطئ في تعبيرك.
لا تنتمي إلى StackOverflow