私は何かが欠けているに違いない、これはどうしたの?
float controlFrameRate = 1/60;
0.0166666667のようなものを割り当てる必要がありますが、0.00000などが出てくるのはビジュアルスタジオが私に嘘をついているだけですか?
これは、1/60
が整数であり、整数除算が切り捨てられるため0であるためです。これはfloatを初期化するために使用さ0.
れ、最初にRHS式をfloatにすることで修正できます。
float controlFrameRate = 1.0f/60;
の
float controlFrameRate = 1/60.0f;
C ++では、などのリテラルは、、、1
で42
ありint
、1.0
in3.1416
はdouble
リテラルf
を1.0f
。にしfloat
ます。f
上記の例では、が省略されている可能性があることに注意してください。ただし、doubleの値がfloatの範囲を超える場合、doubleをfloatに割り当てると問題が発生する可能性があります。
整数を別の整数で除算すると整数が生成され、切り捨て操作になります。実際の値以下の値が得られます。
定数の少なくとも1つを浮動小数点にして、次のように修正します。
float controlFrameRate = 1.0 / 60;
float controlFrameRate = 1 / 60.0;
float controlFrameRate = 1.0 / 60.0;
行う
float controlFrameRate = 1.f/60;
また
float controlFrameRate = 1/60.f;
また
float controlFrameRate = 0.1f/6;
;-)
を使用する必要があります1/60.0
。そうしないと、結果が得られませんfloat
。