Math.Log Method (Double, Double)
Returns the logarithm of a specified number in a specified base.
Namespace: System
Assembly: mscorlib (in mscorlib.dll)
Parameters
- a
- Type: System.Double
The number whose logarithm is to be found.
- newBase
- Type: System.Double
The base of the logarithm.
Return Value
Type: System.DoubleOne of the values in the following table. (+Infinity denotes PositiveInfinity, -Infinity denotes NegativeInfinity, and NaN denotes NaN.)
a | newBase | Return value |
|---|---|---|
a > 0 | (0 < newBase < 1) -or-(newBase > 1) | lognewBase(a) |
a < 0 | (any value) | NaN |
(any value) | newBase < 0 | NaN |
a != 1 | newBase = 0 | NaN |
a != 1 | newBase = +Infinity | NaN |
a = NaN | (any value) | NaN |
(any value) | newBase = NaN | NaN |
(any value) | newBase = 1 | NaN |
a = 0 | 0 < newBase < 1 | +Infinity |
a = 0 | newBase > 1 | -Infinity |
a = +Infinity | 0 < newBase < 1 | -Infinity |
a = +Infinity | newBase > 1 | +Infinity |
a = 1 | newBase = 0 | 0 |
a = 1 | newBase = +Infinity | 0 |
The following example uses Log to evaluate certain logarithmic identities for selected values.
// Example for the Math.Log( double ) and Math.Log( double, double ) methods. using System; class LogDLogDD { public static void Main() { Console.WriteLine( "This example of Math.Log( double ) and " + "Math.Log( double, double )\n" + "generates the following output.\n" ); Console.WriteLine( "Evaluate these identities with " + "selected values for X and B (base):" ); Console.WriteLine( " log(B)[X] == 1 / log(X)[B]" ); Console.WriteLine( " log(B)[X] == ln[X] / ln[B]" ); Console.WriteLine( " log(B)[X] == log(B)[e] * ln[X]" ); UseBaseAndArg(0.1, 1.2); UseBaseAndArg(1.2, 4.9); UseBaseAndArg(4.9, 9.9); UseBaseAndArg(9.9, 0.1); } // Evaluate logarithmic identities that are functions of two arguments. static void UseBaseAndArg(double argB, double argX) { // Evaluate log(B)[X] == 1 / log(X)[B]. Console.WriteLine( "\n Math.Log({1}, {0}) == {2:E16}" + "\n 1.0 / Math.Log({0}, {1}) == {3:E16}", argB, argX, Math.Log(argX, argB), 1.0 / Math.Log(argB, argX) ); // Evaluate log(B)[X] == ln[X] / ln[B]. Console.WriteLine( " Math.Log({1}) / Math.Log({0}) == {2:E16}", argB, argX, Math.Log(argX) / Math.Log(argB) ); // Evaluate log(B)[X] == log(B)[e] * ln[X]. Console.WriteLine( "Math.Log(Math.E, {0}) * Math.Log({1}) == {2:E16}", argB, argX, Math.Log(Math.E, argB) * Math.Log(argX) ); } } /* This example of Math.Log( double ) and Math.Log( double, double ) generates the following output. Evaluate these identities with selected values for X and B (base): log(B)[X] == 1 / log(X)[B] log(B)[X] == ln[X] / ln[B] log(B)[X] == log(B)[e] * ln[X] Math.Log(1.2, 0.1) == -7.9181246047624818E-002 1.0 / Math.Log(0.1, 1.2) == -7.9181246047624818E-002 Math.Log(1.2) / Math.Log(0.1) == -7.9181246047624818E-002 Math.Log(Math.E, 0.1) * Math.Log(1.2) == -7.9181246047624804E-002 Math.Log(4.9, 1.2) == 8.7166610085093179E+000 1.0 / Math.Log(1.2, 4.9) == 8.7166610085093161E+000 Math.Log(4.9) / Math.Log(1.2) == 8.7166610085093179E+000 Math.Log(Math.E, 1.2) * Math.Log(4.9) == 8.7166610085093179E+000 Math.Log(9.9, 4.9) == 1.4425396251981288E+000 1.0 / Math.Log(4.9, 9.9) == 1.4425396251981288E+000 Math.Log(9.9) / Math.Log(4.9) == 1.4425396251981288E+000 Math.Log(Math.E, 4.9) * Math.Log(9.9) == 1.4425396251981288E+000 Math.Log(0.1, 9.9) == -1.0043839404494075E+000 1.0 / Math.Log(9.9, 0.1) == -1.0043839404494075E+000 Math.Log(0.1) / Math.Log(9.9) == -1.0043839404494075E+000 Math.Log(Math.E, 9.9) * Math.Log(0.1) == -1.0043839404494077E+000 */
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.