RosettaCodeData/Task/Determine-if-a-string-is-nu.../BBC-BASIC/determine-if-a-string-is-nu...

20 lines
534 B
Plaintext

REPEAT
READ N$
IF FN_isanumber(N$) THEN
PRINT "'" N$ "' is a number"
ELSE
PRINT "'" N$ "' is NOT a number"
ENDIF
UNTIL N$ = "end"
END
DATA "PI", "0123", "-0123", "12.30", "-12.30", "123!", "0"
DATA "0.0", ".123", "-.123", "12E3", "12E-3", "12+3", "end"
DEF FN_isanumber(A$)
ON ERROR LOCAL = FALSE
IF EVAL("(" + A$ + ")") <> VAL(A$) THEN = FALSE
IF VAL(A$) <> 0 THEN = TRUE
IF LEFT$(A$,1) = "0" THEN = TRUE
= FALSE