我在Java中有以下工作方法:
/**
* Determines if n is a power of z
*
* @param z the number that n may be a power of
* @param n the number that may be a power of z
* @return true if n is a power of z
*/
public boolean isPowerOf(int z, int n) {
double output = Math.log(n) / Math.log(z);
if(output % 1 > 0) {
return false;
} else {
return true;
}
}
isPowerOf(3, 729); //returns true, because 3^6 = 729
工作正常n强大,但我第一次尝试不同:
public boolean isPowerOf(int z, int n) {
double output = Math.log(n) % Math.log(z);
if(output != 0) {
return false;
} else {
return true;
}
}
然而,对于log(729) % log(3)
似乎回归1.0986122886681093
,而结果log(729) / log(3) is 6
。
谁能告诉我是什么原因导致模运算符仍然1.09
在这里给出余数?