我的浮动操作有问题

coo*_*roc 2 c++ operators

我必须遗漏一些东西,这有什么不对吗?

float controlFrameRate = 1/60;
Run Code Online (Sandbox Code Playgroud)

它应该分配像0.0166666667这样的东西,它出来的0.00000等是视觉工作室只是骗我?

jua*_*nza 7

那是因为1/60是一个整数,因为整数除法被截断,所以它是0.这用于初始化float,给出0.你可以通过使RHS表达式首先浮动来修复它:

float controlFrameRate = 1.0f/60;
Run Code Online (Sandbox Code Playgroud)

float controlFrameRate = 1/60.0f;
Run Code Online (Sandbox Code Playgroud)

在C++中,文字等1,42等是int,1.0,3.1416doublef1.0f使文字一个float.请注意,在f上面的示例中可能已省略.但是,如果double的值超出float的范围,则为float指定double可能会有问题.