c语言 - 将浮点数转换为 int 并将其限制为 -1 <-> 1



听起来很简单,但我需要一种方法将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);

你可以切换到其他阈值如果你想做一些四舍五入

相关内容

  • 没有找到相关文章

最新更新