Open in App
Not now

# C# | Math.Log() Method

• Last Updated : 31 Jan, 2019

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
Related Articles