模运算符和界限

时间:2019-03-13 04:09:29

标签: java python if-statement logic modulo

我有一个函数,该函数接受3个参数(upperBound,lowerBound,value),如果value不在upperBound和lowerBound之间,则应在其之间重新分配。我可以对正数执行此操作,但我不知道它对负数和正数混合(即

)如何工作

我有f(60,0,-5)我想让函数显示55。我知道我们必须使用模运算符,并且我可以使用不同情况的组合,但是我想仅通过以下方式实现2例:

如果value是

else if value> upperBound,则是一个一般的语句,用于表示在边界之间给出值的正负整数

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

在Python -5 % 60 = 55

  

%(模)运算符从第一个参数除以第二个参数得出余数。首先将数字参数转换为通用类型。右零参数引发ZeroDivisionError异常。参数可以是浮点数,例如3.14%0.7等于0.34(因为3.14等于4 * 0.7 + 0.34。)取模运算符始终产生与第二个操作数相同符号的结果(或零);结果的绝对值严格小于第二个操作数[1]的绝对值。

请参见Python documentaiton

答案 1 :(得分:0)

请记住要对最小值进行补偿。
假设我们有以下

int min = 15;
int max = 60;
int testValue = -5;

执行以下操作

int result = (testValue % (max-min)) + min;

即使min,max或testValue为负,这也应该起作用。