如何在Java中使用ln

如何在Java中使用ln,java,math,function,Java,Math,Function,我试图在JAVA中使用这个公式:(-ln(1-L))/L 我不知道如何在java中使用ln。我也不知道,但因为它是一个常见的数学函数,所以我在中检查了 给你: 编辑:很抱歉断开链接,降价现已修复。在我发布了这个答案之后,我意识到这听起来很刺耳,这不是我的本意;不过,重新措辞只会让它显得尖刻和讽刺。我只是想强调一点,API对于那些可能会出现很多问题的方法来说确实很有用。返回双精度值的自然对数(基数e) 所以java代码是 double result = (-Math.log(1-L))/L; (

我试图在JAVA中使用这个公式:(-ln(1-L))/L

我不知道如何在java中使用ln。

我也不知道,但因为它是一个常见的数学函数,所以我在中检查了

给你:

编辑:很抱歉断开链接,降价现已修复。在我发布了这个答案之后,我意识到这听起来很刺耳,这不是我的本意;不过,重新措辞只会让它显得尖刻和讽刺。我只是想强调一点,API对于那些可能会出现很多问题的方法来说确实很有用。

返回双精度值的自然对数(基数e)

所以java代码是

double result = (-Math.log(1-L))/L;

(但请注意,最好使用小写的变量名,即
l
而不是
l

我认为-log1p(-l)/l对于小l可能更准确。这一点很好@方,你用的是L的大值还是小值?这是他们给我的公式。我想我最好用“ln”作为给定值,但谢谢你们,你们太棒了!如果你是一个研究CS的数学专家,请小心浮点计算。取决于你如何构思和估计你的公式,你会因为浮点数学在内部的处理方式而产生不同程度的错误。如果您希望将固定宽度精度提高到一定程度,那么您需要查看
java.lang.math
中的其他数学库。谢谢!我还有一个额外的问题..如何用java将一个数字取整(在C语言中是相当简单的)例如,我有一个22.0363456586776的数字,但我想显示22.036345659一般来说,使用DecimalFormat:如果您有一个特定的问题,可以将其作为单独的问题发布。要转换为字符串,可以使用string.format(),例如string.format(“%.10f”,x),用于打印系统.out.printf()。