模数运算符和边界[暂停]

问题描述 投票:0回答:2

我有一个函数,它接受3个参数(upperBound,lowerBound,value),如果value不在upperBound和lowerBound之间,它应该被重新分配。我可以用正数来做,但我不知道它如何适用于负数和正数混合,即如果

我有f(60,0,-5)我希望函数显示55.我知道我们必须使用模运算符,我可以使用不同情况的组合,但我想只用2种情况实现以下:

如果value是<lowerBound,则为正,负整数的一个通用语句,它在边界之间给出值

否则,如果value> upperBound,则为正,负整数的一个通用语句,它在边界之间给出值

任何帮助,将不胜感激。

java python if-statement logic modulo
2个回答
0
投票

在Python -5 % 60 = 55

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

Python documentaiton


0
投票

记得为最小值做偏移。 假设我们有以下内容

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

请执行下列操作

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

即使min,max或testValue为负,这应该相同。

© www.soinside.com 2019 - 2024. All rights reserved.