Java将负数转换为-1,将正数转换为1

Java将负数转换为-1,将正数转换为1,java,math,double,Java,Math,Double,我见过其他类似的帖子,但在java中没有。我想把一个负数双精度,比如-6.9,转换成-1.0,或者如果是4.2,转换成1.0。我可以用一堆if语句来实现,但我想用一种更简洁的方式。这正是java.util.Math的方法所做的。请注意,它返回一个double,因此您可能希望将其转换为int: int result = (int) Math.signum(someNumber); 编辑: 问题的主体和标题略有矛盾,在重新阅读问题后,我不确定您是否希望获得ints of1/-1或doubles o

我见过其他类似的帖子,但在java中没有。我想把一个负数双精度,比如-6.9,转换成-1.0,或者如果是4.2,转换成1.0。我可以用一堆if语句来实现,但我想用一种更简洁的方式。

这正是
java.util.Math
的方法所做的。请注意,它返回一个
double
,因此您可能希望将其转换为
int

int result = (int) Math.signum(someNumber);
编辑:
问题的主体和标题略有矛盾,在重新阅读问题后,我不确定您是否希望获得
int
s of
1
/
-1
double
s of
1.0
/
-1.0
。 如果是前者,上面的答案应该会起作用。如果是后者,则应删除对
int
的显式强制转换,只需使用
signum
的返回值:

double result = Math.signum(someNumber);

请注意,当输入为
0.0
时,它返回
0.0
(未指定大小写)((对于
float
参数,它将返回
float
),谢谢。数学。符号很有用!有
0.0,-0.0,inf,-inf,+NAN,-NAN
的情况。很想知道想要什么样的结果。