数学中的相反符号函数?

41

这样的函数存在吗?我创建了自己的函数,但想使用官方的函数:

private function opposite(number:Number):Number
{
    if (number < 0)
    {
        number = Math.abs(number);
    }
    else
    {
        number = -(number);
    }
    return number;
}
所以,-5变成了5,3变成了-3。
编辑: 请原谅我愚蠢。我是人类。 :)

38
各位,认真点,为什么要踩负评?我们应该在这里互相帮助。这是一个严肃的问题,没有必要表现得很讨厌。 - Doctor Jones
@gnovice 一开始看到时也有同样的想法。 - John T
2
*-1怎么样?虽然这不是“官方”的,但只是一种乘法... - BradleyDotNET
6个回答

93

是的,它会...

return num*-1;
或者简单地说
return -num;

4
在我看来,唯一正确的答案。无需再给出其他答案。 - peSHIr
3
只要这是一种编译型语言,编译器就可以对该乘法进行优化。 - Michael Myers
1
@Emtucifor,无论如何乘法仍然会被执行。这个答案并不是错误的。 - John T
3
如果数字存储在二进制补码中,@John T的说法就不正确了。可以通过翻转所有位并加一(~num + 1)来计算-num的值,这比乘法快得多。 - Kevin Loney
1
@Kevin,是的,但是在使用编译语言时,两者将被编译为单个NEGL指令,在寄存器上执行,因此没有关系。编译后,乘法将被移除,因此我的答案不一定是错误的,只是比必要的多了2个字符。下投票用于不正确的答案或错误信息,这两者都不是。 - John T
显示剩余2条评论

26

如何尝试:

return -(number)

像这样 -(-5) == 5


21

在变量或数字前面加一个负号就行了,即使它已经是负数:

-(-5) => 5
$foo = 3; -$foo => -3

4
这是一个骗人的问题吗?为什么需要一个函数?只需将数字乘以-1即可,用-1相乘即可。

2

尝试将变量赋值为它自身乘以-1,例如:number = number * (-1)


2
你可以使用

标签。

number *= -1;

3变成-3,-5变成5 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接