我正在尝试编写一个Java程序,它可以将值放入涉及log 1/3的公式中。
在Java中如何计算log 1/3?
我正在尝试编写一个Java程序,它可以将值放入涉及log 1/3的公式中。
在Java中如何计算log 1/3?
当你想计算对数时,需要知道底数。一旦你知道了底数,就可以进行计算:
log_b(x) = ln(x) / ln(b)
http://en.wikipedia.org/wiki/Logarithm#Change_of_base
double result = Math.log(x) / Math.log(b);
10
为底的对数,则需要将b
设为10
。你的计算器可能使用以e
为底的对数,这就是自然对数。http://en.wikipedia.org/wiki/Natural_logarithm - Stefan DollaseMath.log(value)
来获取特定值的对数,其中该值被认为是double
类型。您还可以使用Math.log10(value)
来获取以10为底的对数。Math.log(1/3.0)
log(1/3)
。你试过 Math.log(1/3)
吗? - Ruchira Gayan Ranaweera当1/3进行整数类型计算时,结果将会是0而不是0.3333。
因此,Math.log(1/3) = Math.log(0),导致结果为无穷大。
所以,你需要写成Math.log(1/3.0)才能得到预期的结果。
System.out.println("Math.log(1/3.0)=" + Math.log(1/3.0));
查看http://www.tutorialspoint.com/java/lang/math_log.htm和http://docs.oracle.com/javase/7/docs/api/java/lang/Math.html#log%28double%29。
要获得log_10,可以按以下方式操作:
System.out.println("log_10(1/3.0)=" + (Math.log(1/3.0)/Math.log(10)));
ln
还是log
按钮? - MrTux你不需要新的实现,因为这里有内置功能可用
阅读关于 Math.log() 的内容
但是在这种情况下,log(1/3)
将会给你一个 无穷大
的值,如果你使用 Math.log(1/3)
。
你可以按照以下方式使用 log
规则。
log(1/3) =log(1)-log(3)
现在
Math.log(1/3)=Math.log(1)-Math.log(3)
例如:
System.out.println(Math.log(1)-Math.log(3));
输出:
-1.0986122886681098