【发布时间】:2014-03-28 15:48:25
【问题描述】:
听起来很简单,但我需要一种方法来将 int 限制在这个范围内而不会溢出。 或将其限制为 0 - 1 对于所有可能的浮点输入值。没有比较。
限制浮动也是可以接受的,但要快。
更新:找到范围 0 - 1 的解决方案
int i = (int)f;
i = (((i + (i-1))%2)+1)/2;
无需对措辞不佳的问题投反对票。
不知道它将如何在该范围的上半部分附近发挥作用。
【问题讨论】:
-
float f; int i; ... i = (int)f; if(i < -1 || i > 1) printf("Error"); -
或者“我们不知道你想要什么”
-
为什么是位操作标签?
-
帖子不清楚0.0和1.0之间的值是否会变成0、1或两者之一。