public static void main(String[] args) throws InterruptedException{ int a = 10; int b = 1000000; System.out.println(getlog(b,a)); } static double getlog(int b,int a){ return Math.log(b)/Math.log(a); } Math提供了一个自然底数的方法,Math.log(),自定义方法,但是运行结果精度会丢失。运行结果为5.99999。public static void main(String[] args) throws InterruptedException{ BigDecimal a = new BigDecimal(10); BigDecimal b = new BigDecimal(1000000); System.out.println(getlog(b,a)); // } static double getlog(BigDecimal b, BigDecimal a){ return Math.log(b.doubleValue())/Math.log(a.doubleValue()); } 结果为6.0。精度出问题就找BigDecimal 就可以了。 指数的话,直接使用Math.pow(a,b)就可以了。
java 对数和指数计算
最新推荐文章于 2024-10-11 11:20:04 发布