The method **log10(long x, RoundingMode mode)** of Guava’s LongMath Class accepts two parameters and calculates the base-10 logarithmic value of the first parameter rounded according to the rounding mode specified by the second parameter.

**Syntax:**

public static int log10(long x, RoundingMode mode)

**Parameters:** The method takes 2 parameters:

is the long value to be found log of.*x*is the specified rounding mode.*mode*

**Return Value:** This method returns Base-10 logarithm of x, rounded according to the specified rounding mode.

**Exceptions:** This method throws following parameters:

**IllegalArgumentException:**if the value x is 0 or a negative value.**ArithmeticException:**if mode is RoundingMode.UNNECESSARY and x is not a power of ten.

#### Enum RoundingMode

Enum Constant | Description |
---|---|

CEILING | Rounding mode to round towards positive infinity. |

DOWN | Rounding mode to round towards zero. |

FLOOR | Rounding mode to round towards negative infinity. |

HALF_DOWN | Rounding mode to round towards “nearest neighbor” unless both neighbors are equidistant, in which case round down. |

HALF_EVEN | Rounding mode to round towards the “nearest neighbor” unless both neighbors are equidistant, in which case, round towards the even neighbor. |

HALF_UP | Rounding mode to round towards “nearest neighbor” unless both neighbors are equidistant, in which case round up. |

UNNECESSARY | Rounding mode to assert that the requested operation has an exact result, hence no rounding is necessary. |

UP | Rounding mode to round away from zero. |

Below given are some examples to understand the implementation in a better way:

**Example 1:**

`// Java code to show implementation of` `// log10(long x, RoundingMode mode) method` `// of Guava's LongMath class` ` ` `import` `java.math.RoundingMode;` `import` `com.google.common.math.LongMath;` ` ` `class` `GFG {` ` ` ` ` `// Driver code` ` ` `public` `static` `void` `main(String args[])` ` ` `{` ` ` `long` `a1 = ` `10000` `;` ` ` ` ` `// Using log10(long x, RoundingMode mode)` ` ` `// method of Guava's LongMath class` ` ` `// The RoundingMode HALF_EVEN rounds towards` ` ` `// the "nearest neighbor" unless both neighbors` ` ` `// are equidistant, in which case, round towards` ` ` `// the even neighbor.` ` ` `System.out.println(` ` ` `LongMath.log10(` ` ` `a1,` ` ` `RoundingMode.HALF_EVEN));` ` ` ` ` `long` `a2 = ` `15` `;` ` ` ` ` `// Using log10(long x, RoundingMode mode)` ` ` `// method of Guava's LongMath class` ` ` `// The RoundingMode HALF_DOWN rounds towards` ` ` `// "nearest neighbor" unless both neighbors` ` ` `// are equidistant, in which case round down.` ` ` `System.out.println(` ` ` `LongMath.log10(a2,` ` ` `RoundingMode.HALF_DOWN));` ` ` `}` `}` |

Output :

4 1

**Example 2 :**

`// Java code to show implementation of` `// log10(long x, RoundingMode mode) method` `// of Guava's LongMath class` ` ` `import` `java.math.RoundingMode;` `import` `com.google.common.math.LongMath;` ` ` `class` `GFG {` ` ` ` ` `static` `int` `findlog10(` `long` `x, RoundingMode mode)` ` ` `{` ` ` `try` `{` ` ` `// Using log10(long x, RoundingMode mode)` ` ` `// method of Guava's LongMath class` ` ` `// The RoundingMode HALF_EVEN rounds towards` ` ` `// the "nearest neighbor" unless both neighbors` ` ` `// are equidistant, in which case, round towards` ` ` `// the even neighbor.` ` ` `// This should throw "IllegalArgumentException"` ` ` `// as x <= 0` ` ` `int` `ans = LongMath.log10(x, mode);` ` ` ` ` `// Return the answer` ` ` `return` `ans;` ` ` `}` ` ` `catch` `(Exception e) {` ` ` `System.out.println(e);` ` ` `return` `-` `1` `;` ` ` `}` ` ` `}` ` ` ` ` `// Driver code` ` ` `public` `static` `void` `main(String args[])` ` ` `{` ` ` `long` `x = -` `122` `;` ` ` ` ` `try` `{` ` ` ` ` `// Function calling` ` ` `findlog10(x, RoundingMode.HALF_EVEN);` ` ` `}` ` ` `catch` `(Exception e) {` ` ` `System.out.println(e);` ` ` `}` ` ` `}` `}` |

Output :

java.lang.IllegalArgumentException: x (-122) must be > 0

Attention reader! Don’t stop learning now. Get hold of all the important **Java Foundation** and Collections concepts with the **Fundamentals of Java and Java Collections Course** at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**