# C# | Math.Log() Method

In C#, Math.Log() is a Math class method. It is used to return the logarithm of a specified number. This method can be overloaded by changing the number of the arguments passed. There are total 2 methods in the overload list of the Math.Log() method as follows:

• Math.Log(Double) Method
• Math.Log(Double, Double) Method
##### Math.Log(Double) Method

This method is used to return the natural (base e) logarithm of a specified number.

Syntax:

`public static double Log(double val)`

Parameter:

val: It is the specified number whose natural (base e) logarithm to be calculated and its type is System.Double.

Return Value: Returns the natural logarithm of val and its type is System.Double.

Note: Parameter val is always specified as a base 10 number.The return value is depend on the argument passed. Below are some cases:

• If the argument is positive then method will return the natural logarithm or loge(val).
• If the argument is zero, then the result is NegativeInfinity.
• If the argument is Negative(less than zero) or equal to NaN, then the result is NaN.
• If the argument is PositiveInfinity, then the result is PositiveInfinity.
• If the argument is NegativeInfinity, then the result is NaN.

Example:

 `// C# program to demonstrate working ` `// of Math.Log(Double) method ` `using` `System; ` ` `  `class` `Geeks { ` ` `  `    ``// Main Method ` `    ``public` `static` `void` `Main(String[] args) ` `    ``{ ` ` `  `        ``// double values whose logarithm  ` `        ``// to be calculated ` `        ``double` `a = 4.55; ` `        ``double` `b = 0; ` `        ``double` `c = -2.45; ` `        ``double` `nan = Double.NaN; ` `        ``double` `positiveInfinity = Double.PositiveInfinity;        ` `        ``double` `negativeInfinity = Double.NegativeInfinity; ` ` `  `        ``// Input is positive number so output ` `        ``// will be logarithm of number ` `        ``Console.WriteLine(Math.Log(a)); ` ` `  `        ``// positive zero as argument, so output  ` `        ``// will be -Infinity ` `        ``Console.WriteLine(Math.Log(b)); ` ` `  `        ``// Input is negative number so output ` `        ``// will be NaN ` `        ``Console.WriteLine(Math.Log(c)); ` ` `  `        ``// Input is NaN so output ` `        ``// will be NaN ` `        ``Console.WriteLine(Math.Log(nan)); ` ` `  `        ``// Input is PositiveInfinity so output ` `        ``// will be Infinity ` `        ``Console.WriteLine(Math.Log(positiveInfinity)); ` ` `  `        ``// Input is NegativeInfinity so output ` `        ``// will be NaN ` `        ``Console.WriteLine(Math.Log(negativeInfinity)); ` `    ``} ` `} `

Output:

```1.51512723296286
-Infinity
NaN
NaN
Infinity
NaN
```
##### Math.Log(Double, Double) Method

This method is used to return the logarithm of a specified number in a specified base.

Syntax:

`public static double Log(double val, double base)`

Parameter:

val: It is the specified number whose logarithm to be calculated and its type is System.Double.

base: It is the base of the logarithm of type System.Double.

Return Value: It returns the logarithm of val and its type is System.Double.

Note: The return value is always depend on the argument passed. Below table depicts the different cases:

val base Returned Value
val > 0 (0 < Base < 1) or(Base > 1) logbase(val)
val < 0 any value NaN
any value base < 0 NaN
val != 1 base = 0 NaN
val != 1 base = +ve Infinity NaN
val = NaN any value NaN
any value base = NaN NaN
any value base = 1 NaN
val = 0 (0 < Base < 1) +ve Infinity
val = 0 base > 1 -ve Infinity
val = +ve Infinity (0 < Base < 1) -ve Infinity
val = +ve Infinity base > 1 +ve Infinity
val = 1 base = 0 0
val = 1 base = +ve Infinity 0

Example:

 `// C# program to demonstrate working ` `// of Math.Log(Double, Double) method ` `using` `System; ` ` `  `class` `Geeks { ` ` `  `    ``// Main Method ` `    ``public` `static` `void` `Main(String[] args) ` `    ``{ ` ` `  `        ``// Here val = 1.3 and base is 0.3 then  ` `        ``// output will be logarithm of given value ` `        ``Console.WriteLine(Math.Log(1.3, 0.3)); ` `         `  `        ``// Here val is 0.5 and base > 1 then output  ` `        ``// will be -0.5 ` `        ``Console.WriteLine(Math.Log(0.5, 4)); ` ` `  `        ``// Here val is 0.7 and base = 1 then output  ` `        ``// will be NaN ` `        ``Console.WriteLine(Math.Log(0.7, 1)); ` ` `  `        ``// Here val is 0.7 and base is NaN then output  ` `        ``// will be NaN ` `        ``Console.WriteLine(Math.Log(0.7, Double.NaN)); ` `    ``} ` `} `

Output:

```-0.217915440884381
-0.5
NaN
NaN
```

References:

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Article Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.