Описание функции
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(@"")