此问题已在此处有答案:
Is floating point math broken?(32个回答)
Java: Finding if number is power of 2(1个答案)
3天前关闭。
考虑这个程序来确定一个给定的数是否是2的幂。
class Solution{
// Function to check if given number n is a power of two.
public static boolean isPowerofTwo(long n){
// Your code here
float x = (float)Math.log(n)/(float)Math.log(2);
System.out.println(x);
if(x%1==0)
return true;
return false;
}
}
然后考虑n =1073741824,当输出应该是30时,它给出了29.999998。
1条答案
按热度按时间k4emjkb11#
不要使用浮点数学来确定一个数字是否是2的幂。使用这个代替: