Процедура Val в Delphi конвертирует числовые строки в целое число, или число с плавающей запятой.
System unit
procedure Val (const NumberString : string; var NumberVar : Number Type; var ErrorCode : Integer);
Процедура Val – это более старая процедура Delphi, которая может преобразовывать строку NumberString как в целочисленные переменные, так и в переменные с плавающей запятой.
Переменная NumberVar должна соответствовать числовой строке. В частности, целочисленное строковое значение должно быть предоставлено, если NumberVar имеет тип Integer.
Если преобразование завершается успешно, ErrorCode устанавливается равным 0. В противном случае он устанавливается равным первому символу в NumberString, для которого не удалось выполнить преобразование.
Предупреждение.
Безопаснее использовать процедуры преобразования SysUtils, такие как StrToFloat, где распознается информация региона. В частности, символ, используемый для десятичной точки.
Процедура Val: Иллюстрация успешного и неудачного преобразования строки с вещественным числом
var
numberString : string;
float : Extended;
errorPos : Integer;
begin
// Установка строки правильным с вещественным числом
numberString := '12345.678';
// Его преобразование в значение
Val(numberString, float, errorPos);
// Показ строки и преобразованного значения
if errorPos = 0
then ShowMessageFmt('Val(%s) = %12.3f',[numberString,float]);
// Val игнорирует Десятичный Разделитель, а конвертеры SysUtils - нет
DecimalSeparator := '_';
numberString := '12345_678';
Val(numberString, float, errorPos);
if errorPos = 0
then ShowMessageFmt('Val(%s) = %12.3f',[numberString,float])
else ShowMessageFmt('Val(%s) потерпело неудачу в позиции %d',
[numberString, errorPos]);
end;
Результат
Val(12345.678) = 12345.678
Val(12345_678) потерпело неудачу в позиции 6
Похожие функции, процедуры и команды
Chr — конвертирует целое число в символ.
IntToStr — конвертирует целое число в строку.
StrToInt — преобразует строку с целым значением в Integer.
