Numeric Math Functions Oracle PLSQL

SQL>
SQL> CREATE OR REPLACE FUNCTION get_num (
  2     p_highval             NUMBER,
  3     p_lowval              NUMBER := 0,
  4     p_negatives_allowed   BOOLEAN := FALSE,
  5     p_scale               PLS_INTEGER := 0
  6  )
  7     RETURN NUMBER
  8  IS
  9     l_ret   NUMBER;
 10     l_sign   NUMBER := 1;
 11  BEGIN
 12     IF (p_negatives_allowed) THEN
 13        l_sign := SIGN (DBMS_RANDOM.random);
 14     END IF;
 15
 16     l_ret := l_sign * ROUND (DBMS_RANDOM.VALUE (p_lowval, p_highval), p_scale);
 17     RETURN l_ret;
 18  END;
 19  /
Function created.