REM >midthree FOR i% = 1 TO 17 READ test% PRINT test%; " -> "; FN_middle_three(test%) NEXT END : DATA 123, 12345, 1234567, 987654321, 10001, -10001, -123, -100, 100, -12345 DATA 1, 2, -1, -10, 2002, -2002, 0 : DEF FN_middle_three(n%) LOCAL n$ n$ = STR$ ABS n% CASE TRUE OF WHEN LEN n$ < 3 = "Not enough digits" WHEN LEN n$ MOD 2 = 0 = "Even number of digits" OTHERWISE = MID$(n$, LEN n$ / 2, 3) ENDCASE