Описание функции


IsFloat

Проверяет является ли текст дробным числом, например "1.2"

IsFloat(*c.Character)

Параметры

*c.Character Указатель на строку

Возвращаемое значение

Успех:Возвращает:
#True - строка является дробным числом
#False - строка не является дробным числом

См. также

IsDigital, IsHex, IsLatin, ValidChar

Пример

Procedure IsFloat(*c.Character)
    Protected flag = #True, sep = 0, increment = 1

    If *c = 0 Or *c\c = 0
        ProcedureReturn 0
    EndIf

    Repeat
        If *c\c >= '0' And *c\c <= '9'
;             Debug "-> 0-9"
            sep = increment
        ElseIf sep And *c\c = '.'
;             Debug "-> ."
            If sep <= 0
;                 Debug "-> Out2"
                flag = #False
                Break
            EndIf
            sep = 0
            increment = -1
        Else
;             Debug "-> Out"
            flag = #False
            Break
        EndIf
        *c + SizeOf(Character)
    Until Not *c\c

    If sep <> -1
;         Debug "-> Out3"
        flag = #False
    EndIf

    ProcedureReturn flag
EndProcedure

Debug IsFloat(@"1.2")
Debug IsFloat(@"1..2")
Debug IsFloat(@"1.2.3")
Debug IsFloat(@"1")
Debug IsFloat(@"1.")
Debug IsFloat(@".1")
Debug IsFloat(@"qwerty")
Debug IsFloat(@".")
Debug IsFloat(@"")