Scala - Math nextAfter() Method

The Scala Math nextAfter() method returns the floating-point number adjacent to the first argument in the direction of the second argument. If both arguments compare as equal a value equivalent to the second argument is returned. In special cases it returns the following:

• If either argument is a NaN, then NaN is returned.
• If both arguments are signed zeros, a value equivalent to direction is returned.
• If start is infinite and direction has a value such that the result should have a smaller magnitude, Double.MaxValue or Float.MaxValue with the same sign as start is returned.
• If start is ±Double.MinValue or ±Float.MinValue and direction has a value such that the result should have a smaller magnitude, then a zero with the same sign as start is returned.
• If start is equal to ±Double.MaxValue or ±Float.MaxValue and direction has a value such that the result should have a larger magnitude, an infinity with same sign as start is returned.

Syntax

```  def nextAfter(start: Double, direction: Double): Double =
java.lang.Math.nextAfter(start, direction)
def nextAfter(start: Float, direction: Double): Float =
java.lang.Math.nextAfter(start, direction)
```

Parameters

 `start` Specify starting floating-point value. `direction` Specify value for direction.

Return Value

Returns the floating-point number adjacent to the first argument in the direction of the second argument.

NA.

Example:

In the example below, Math.nextAfter() method returns the floating-point number adjacent to the first argument in the direction of the second argument.

```object MainObject {
def main(args: Array[String]) {
println("Math.nextAfter(10.55, 0) = "
+ Math.nextAfter(10.55, 0));
println("Math.nextAfter(-10.55, 0) = "
+ Math.nextAfter(-10.55, 0));
println("Math.nextAfter(0, -10) = "
+ Math.nextAfter(0, -10));
println("Math.nextAfter(Double.NaN, 0) = "
+ Math.nextAfter(Double.NaN, 0));
println("Math.nextAfter(Double.PositiveInfinity, 0) = "
+ Math.nextAfter(Double.PositiveInfinity, 0));
}
}
```

The output of the above code will be:

```Math.nextAfter(10.55, 0) = 10.549999999999999
Math.nextAfter(-10.55, 0) = -10.549999999999999
Math.nextAfter(0, -10) = -1.4E-45
Math.nextAfter(Double.NaN, 0) = NaN
Math.nextAfter(Double.PositiveInfinity, 0) = 1.7976931348623157E308
```

❮ Scala - Math Methods

5