听起来很简单,但我需要一种方法将int限制在这个范围内而不溢出。或者限定为0 - 1对于所有可能的浮点输入值。没有比较
限制浮动也是可以接受的,但它需要快。
更新:已找到范围0 - 1的解决方案
int i = (int)f;
i = (((i + (i-1))%2)+1)/2;
没有必要否决一个措辞拙劣的问题。
这将值限制为0-1
float f;
int i = (f>=1);
如果你想从集合{-1,0,1}中得到一个结果,试试
float f;
int i = (f>=1)-(f<=1);
你可以切换到其他阈值如果你想做一些四舍五入