BigInteger.Log 方法

定义

返回指定数字的对数。

重载

Log(BigInteger)

返回指定数字的自然对数(底为 e)。

Log(BigInteger, Double)

返回指定数字在使用指定底时的对数。

Log(BigInteger)

Source:
BigInteger.cs
Source:
BigInteger.cs
Source:
BigInteger.cs

返回指定数字的自然对数(底为 e)。

public:
 static double Log(System::Numerics::BigInteger value);
public static double Log (System.Numerics.BigInteger value);
static member Log : System.Numerics.BigInteger -> double
Public Shared Function Log (value As BigInteger) As Double

参数

value
BigInteger

要查找其对数的数字。

返回

value 的自然对数(底为 e),如“备注”部分中的表所示。

例外

value 的自然对数超出了 Double 数据类型的范围。

注解

参数 value 指定为 10 基数。

此方法的精确返回值取决于 的 value符号,如下表所示。

参数的 value 符号 返回值
的自然对数 value;即 ln value或对数 evalue
NegativeInfinity.
负数 NaN.

若要计算某个值的以 10 为底的 BigInteger 对数,请 Log10 调用 方法。 若要计算另一个基数的对数,请 Log(BigInteger, Double) 调用 方法。

可以通过调用 Log 方法以及 Math.Exp 方法来查找数字的平方根。 请注意,如果结果 Double.PositiveInfinity 大于 Double.MaxValue,则结果为 。 以下示例计算值数组中每个元素的 BigInteger 平方根。

using System;
using System.Numerics;

public class Example
{
   public static void Main()
   {
      BigInteger[] values = { 2, 100, BigInteger.Pow(1000, 100), 
                              BigInteger.Pow(2, 64) };
      foreach (var value in values)                                    
         Console.WriteLine("The square root of {0} is {1}", value, 
                           Math.Exp(BigInteger.Log(value) / 2));
   }
}
// The example displays the following output:
//    The square root of 2 is 1.41421356237309
//    The square root of 100 is 10
//    The square root of 1000000000000000000000000000000000000000000000000000000000000
//    00000000000000000000000000000000000000000000000000000000000000000000000000000000
//    00000000000000000000000000000000000000000000000000000000000000000000000000000000
//    00000000000000000000000000000000000000000000000000000000000000000000000000000000
//     is 9.99999999999988E+149
//    The square root of 18446744073709551616 is 4294967296
open System
open System.Numerics

let values = [| 2I; 100I; BigInteger.Pow(1000I, 100); BigInteger.Pow(2I, 64) |]

for value in values do
    printfn $"The square root of {value} is {Math.Exp(BigInteger.Log(value) / 2.)}"
// The example displays the following output:
//    The square root of 2 is 1.41421356237309
//    The square root of 100 is 10
//    The square root of 1000000000000000000000000000000000000000000000000000000000000
//    00000000000000000000000000000000000000000000000000000000000000000000000000000000
//    00000000000000000000000000000000000000000000000000000000000000000000000000000000
//    00000000000000000000000000000000000000000000000000000000000000000000000000000000
//     is 9.99999999999988E+149
//    The square root of 18446744073709551616 is 4294967296
Imports System.Numerics

Module Example
   Public Sub Main()
      Dim values() As BigInteger = { 2, 100, BigInteger.Pow(1000, 100), 
                                     BigInteger.Pow(2, 64) }
      For Each value In values                                    
         Console.WriteLine("The square root of {0} is {1}", value, 
                           Math.Exp(BigInteger.Log(value) / 2))
      Next                                     
   End Sub
End Module
' The example displays the following output:
'    The square root of 2 is 1.41421356237309
'    The square root of 100 is 10
'    The square root of 1000000000000000000000000000000000000000000000000000000000000
'    00000000000000000000000000000000000000000000000000000000000000000000000000000000
'    00000000000000000000000000000000000000000000000000000000000000000000000000000000
'    00000000000000000000000000000000000000000000000000000000000000000000000000000000
'     is 9.99999999999988E+149
'    The square root of 18446744073709551616 is 4294967296

此方法对应于 Math.Log(Double) 基元数值类型的 方法。

另请参阅

适用于

Log(BigInteger, Double)

Source:
BigInteger.cs
Source:
BigInteger.cs
Source:
BigInteger.cs

返回指定数字在使用指定底时的对数。

public:
 static double Log(System::Numerics::BigInteger value, double baseValue);
public static double Log (System.Numerics.BigInteger value, double baseValue);
static member Log : System.Numerics.BigInteger * double -> double
Public Shared Function Log (value As BigInteger, baseValue As Double) As Double

参数

value
BigInteger

要查找其对数的数字。

baseValue
Double

对数的底。

返回

baseValue 的以 value 为底的对数,如“备注”部分中的表所示。

例外

value 的对数超出了 Double 数据类型的范围。

注解

valuebaseValue 参数指定为 10 基数。

方法的精确返回值取决于 的 value 符号以及 的 baseValue符号和值,如下表所示。

value 参数 baseValue 参数 返回值
value > 0 (0 <baseValue< 1) 或 (baseValue> 1) logbaseValue (value)
value < 0 (任意值) Double.NaN
(任意值) baseValue < 0 Double.NaN
value != 1 baseValue = 0 Double.NaN
value != 1 baseValue = Double.PositiveInfinity Double.NaN
(任意值) baseValue = Double.NaN Double.NaN
(任意值) baseValue = 1 Double.NaN
value = 0 0 <baseValue< 1 Double.PositiveInfinity
value = 0 baseValue > 1 Double.PositiveInfinity
value = 1 baseValue = 0 0
value = 1 baseValue = Double.PositiveInfinity 0

若要计算某个值的以 10 为底的 BigInteger 对数,请 Log10 调用 方法。 若要计算数字的自然对数,请 Log(BigInteger) 调用 方法。

此方法对应于 Math.Log 基元数值类型的 方法。

另请参阅

适用于