这些之间有什么区别:
float foo1 = (int)(bar / 3.0);
float foo2 = floor(bar / 3.0);
Run Code Online (Sandbox Code Playgroud)
据我所知,两种情况都有相同的结果.编译代码有什么区别吗?
在Python 2中,floor()返回了一个浮点值.虽然对我来说不是很明显,但我找到了一些解释,说明为什么floor()返回浮点数可能是有用的(对于像float('inf')和的情况float('nan')).
但是,在Python 3中,floor()返回整数(并返回前面提到的特殊情况的溢出错误).
那么现在int()和floor()现在有什么不同呢?
在C中,这两者有什么区别?
float myF = 5.6;
printf( "%i \n", (int)myF ); // gives me "5"
printf( "%ld \n", floor(myF) ); // also "5"?
Run Code Online (Sandbox Code Playgroud)
什么时候优于另一个?