确保最大绝对值但保留符号的最佳方法是什么?

时间:2018-07-26 17:55:45

标签: math absolute

说我们有类似的代码;

if (x > 6) {
    x = 6;
}
if (x < -6) {
    x = -6;
}

我们可以将其减少为一项检查和一项更新吗?

我们可以这样做,但是我们失去了招牌。

if (abs(x) > 6) {
    x = 6;
}

(我不假定任何特定语言)

1 个答案:

答案 0 :(得分:1)

使用sign函数,您可以使用

x = sign(x) * min(6, abs(x))

或者,如果您更喜欢copysign函数[其中copysign(x,y)返回一个浮点数,其浮点数(x的绝对值)为y的符号,

x = copysign(min(6, abs(x)), x)