Export (0) Print
Expand All

Math.Log Method (Double, Double)

Returns the logarithm of a specified number in a specified base.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

public static double Log(
	double a,
	double newBase
)

Parameters

a
Type: System.Double
A number whose logarithm is to be found.
newBase
Type: System.Double
The base of the logarithm.

Return Value

Type: System.Double
One 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 Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      outputBlock.Text +=
          "This example of Math.Log( double ) and " +
          "Math.Log( double, double )\n" +
          "generates the following output.\n" + "\n";
      outputBlock.Text +=
          "Evaluate these identities with " +
          "selected values for X and B (base):" + "\n";
      outputBlock.Text += "   log(B)[X] == 1 / log(X)[B]" + "\n";
      outputBlock.Text += "   log(B)[X] == ln[X] / ln[B]" + "\n";
      outputBlock.Text += "   log(B)[X] == log(B)[e] * ln[X]" + "\n";

      UseBaseAndArg(outputBlock, 0.1, 1.2);
      UseBaseAndArg(outputBlock, 1.2, 4.9);
      UseBaseAndArg(outputBlock, 4.9, 9.9);
      UseBaseAndArg(outputBlock, 9.9, 0.1);
   }

   // Evaluate logarithmic identities that are functions of two arguments.
   static void UseBaseAndArg(System.Windows.Controls.TextBlock outputBlock, double argB, double argX)
   {
      // Evaluate log(B)[X] == 1 / log(X)[B].
      outputBlock.Text += String.Format(
          "\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)) + "\n";

      // Evaluate log(B)[X] == ln[X] / ln[B].
      outputBlock.Text += String.Format(
          "        Math.Log({1}) / Math.Log({0}) == {2:E16}",
          argB, argX, Math.Log(argX) / Math.Log(argB)) + "\n";

      // Evaluate log(B)[X] == log(B)[e] * ln[X].
      outputBlock.Text += String.Format(
          "Math.Log(Math.E, {0}) * Math.Log({1}) == {2:E16}",
          argB, argX, Math.Log(Math.E, argB) * Math.Log(argX)) + "\n";
   }
}

/*
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
*/


Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Xbox 360, Windows Phone OS 7.0

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Community Additions

ADD
Show:
© 2014 Microsoft