关于Java中 求Logn/log2 的精度问题。

来源:互联网 发布:淘宝产品数据包制作 编辑:程序博客网 时间:2024/06/05 22:53

经过本人测试,java 中 , 一直到 2的492 次方(这么大的数,平时够用了) ;用 Math.log(n) / Math.log(x) 公式都会产生一个整数,例如

  int x = 2 ;
  
  double n = Math.pow(2, 234)

  System.out.println(Math.log(n) / Math.log(x));


输出的是 234.0 ;

 而到了 2的493次方,结果是493.00000000000006 ; 所以,平时用这个公式来确定n是否是2的整数次幂足够了!


程序如下:


public class Test {
 
 public static void main(String[] args) {
  
 // System.out.println(Math.pow(2, 23));
  
  int x = 2 ;
  
  double n = Math.pow(2, 493) ;
  
  System.out.println(Math.log(n) / Math.log(x));
  
 }

}

0 0