Mar*_*ark 0 java algorithm math
我试图找到 log(10^k) 的结果,其中 k 是像 10000 这样的大数字。例如:
BigDecimal first = BigDecimal.TEN.pow(10000);
double result = Math.log(first.doubleValue());
Run Code Online (Sandbox Code Playgroud)
然而,“结果”变成 Infinity ,但是在 wolphram 上将其近似为 23025.85.Any 建议如何找到结果?结果小数点后前两位的数字对我来说就足够了。
使用以下事实
log(10^k) = k*log(10)
Run Code Online (Sandbox Code Playgroud)
所以:
System.out.println(10000 * Math.log(10));
Run Code Online (Sandbox Code Playgroud)
印刷:
23025.850929940458
Run Code Online (Sandbox Code Playgroud)