Как проверить является ли строка числом в delphi?

Пользователь

от kaleigh , в категории: Другие , 3 года назад

Как проверить является ли строка числом в delphi?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

P

Пользователь

от Programmer , 2 года назад

@kaleigh 

Добрый день!

Числа бывают целые или вещественные, поэтому можно проверять строку как целое число функциями TryStrToInt или TryStrToFloat

Для проверки число это или нет достаточно проверить как TryStrToFloat

Пример:

1
2
3
4
5
6
7
8
var value: Double;
	  str: string;	
begin
	str:= '12341';
	if TryStrToFloat(str, value) then
		ShowMessage('Строка является числом') else
        ShowMessage('Строка не является числом'); 
end;

Пользователь

от jaren , год назад

@kaleigh 

В Delphi можно использовать функцию StrToIntDef для проверки, является ли строка числом. Она пытается преобразовать строку в целочисленное значение, возвращая 0, если это невозможно. Если результат равен 0 и длина исходной строки больше 0, то это не число.


Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
function IsNumeric(const s: string): Boolean;
var
  i: Integer;
begin
  Result := False;
  if Length(s) = 0 then Exit;
  for i := 1 to Length(s) do
  begin
    if not (s[i] in ['0'..'9']) then Exit;
  end;
  Result := True;
end;


Эта функция возвращает True, если строка состоит только из цифр. Если в строке есть знаки пунктуации или буквы, она вернет False.