Java 与常数的双值比较
数学包中有一个Java 与常数的双值比较,java,Java,数学包中有一个double signum(double d)函数,如果参数为零,则返回零;如果参数大于零,则返回1.0;如果参数小于零,则返回1.0 将结果值与==进行比较安全吗?还是应该使用其他方法 例如: if(Math.signum(someDouble) == 1.0) { do something } 是的,根据文档中提供的该功能规范,它是“安全的”。但是,如果您只需要测试signum,为什么不直接执行someDouble>0?。Math.signum在这里没有用,它对一些公
double signum(double d)
函数,如果参数为零,则返回零;如果参数大于零,则返回1.0;如果参数小于零,则返回1.0
将结果值与==
进行比较安全吗?还是应该使用其他方法
例如:
if(Math.signum(someDouble) == 1.0) {
do something
}
是的,根据文档中提供的该功能规范,它是“安全的”。但是,如果您只需要测试signum,为什么不直接执行
someDouble>0
?。Math.signum在这里没有用,它对一些公式很有用,但在那里它是没有必要的。你认为它可能不安全的具体原因是什么?我已经读到不应该将double与just=,但在本例中,我比较了函数返回的结果值,该函数具有用于表示结果值的常数。假设==
符号中的比较是安全的,同样安全。