The method **sqrt(long x, RoundingMode mode)** of Guava’s LongMath Class accepts two parameters and calculates the square root of the first parameter rounded according to the rounding mode specified by the second parameter.

**Syntax:**

public static long sqrt(long x, RoundingMode mode)

**Parameters:** This method takes two parameters:

**x:**is a long value of whose square root is to be found.**mode:**is the rounding mode according to which the rounding is to be done.

**Return Value:** This method returns **square root of x**, rounded according to the specified rounding mode.

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

**IllegalArgumentException:**if x < 0.**ArithmeticException:**if mode is RoundingMode.UNNECESSARY and sqrt(x) is not an integer.

#### 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 ` `// sqrt(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` `x1 = ` `524` `; ` ` ` ` ` `// Using sqrt(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. ` ` ` `long` `ans1 ` ` ` `= LongMath.sqrt(x1, ` ` ` `RoundingMode.HALF_EVEN); ` ` ` ` ` `System.out.println(` `"Square root of "` `+ x1 ` ` ` `+ ` `" is : "` `+ ans1); ` ` ` ` ` `long` `x2 = ` `316` `; ` ` ` ` ` `// Using sqrt(long x, RoundingMode mode) ` ` ` `// method of Guava's LongMath class ` ` ` `// The RoundingMode FLOOR rounds towards ` ` ` `// negative infinity. ` ` ` `long` `ans2 ` ` ` `= LongMath.sqrt(x2, ` ` ` `RoundingMode.FLOOR); ` ` ` ` ` `System.out.println(` `"Square root of "` `+ x2 ` ` ` `+ ` `" is : "` `+ ans2); ` ` ` `} ` `} ` |

*chevron_right*

*filter_none*

**Output:**

Square root of 524 is : 23 Square root of 316 is : 17

**Example 2:**

`// Java code to show implementation of ` `// sqrt(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[]) ` ` ` `{ ` ` ` `int` `x = -` `65` `; ` ` ` ` ` `try` `{ ` ` ` `// Using sqrt(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 ` ` ` `long` `ans1 = LongMath.sqrt(x, ` ` ` `RoundingMode.HALF_EVEN); ` ` ` `} ` ` ` `catch` `(Exception e) { ` ` ` `System.out.println(e); ` ` ` `} ` ` ` `} ` `} ` |

*chevron_right*

*filter_none*

**Output:**

java.lang.IllegalArgumentException: x (-65) 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.