code: public static float round(float x, int scale, int roundingMethod)
          throws ArithmeticException, IllegalArgumentException {
          final float sign = FastMath.copySign(1f, x);
          final float factor = (float) FastMath.pow(10.0f, scale) * sign;
          return (float) roundUnscaled(x * factor, sign, roundingMethod) / factor;
      }
docs: Rounds the given value to the specified number of decimal places.
  The value is rounded using the given method which is any method defined
  in {@link BigDecimal}.
  
  @param x Value to round.
  @param scale Number of digits to the right of the decimal point.
  @param roundingMethod Rounding method as defined in {@link BigDecimal}.
  @return the rounded value.
  @since 1.1 (previously in {@code MathUtils}, moved as of version 3.0)
  @throws MathArithmeticException if an exact operation is required but result is not exact
  @throws MathIllegalArgumentException if {@code roundingMethod} is not a valid rounding method.