今天发现VS2010不支持round
C++项目中的功能。有关该功能的信息已在此处找到。还注意到也没有trunc
功能。
所以尝试了一些东西,并注意到一些可能在这种情况下有所帮助的行为。
float a = 2.999;
int b = (int)a; //gives 2
float a = -2.999;
int b = (int)a; //gives -2
这可以用作截断,因此我可以使用它,但是我不想使用导致未定义行为的代码。所以想问一下这是定义的还是未定义的行为。
编辑:我不是在询问 C++11,因为我使用的是 VS2008。