Конвертирует числовые строки в целое число или число с плавающей запятой
System unit
procedure Val ( const NumberString : string; var NumberVar : Number Type; var ErrorCode : Integer ) ;
Описание
Процедура Val является старой процедурой Delphi, которая может преобразовать строку NumberString в целое число или в число с плавающей запятой.
Переменная NumberVar должна соответствовать числовой строке. Должно быть обеспечено целочисленное строковое значение, чтобы получить целочисленный тип.
Если преобразование успешно, то ErrorCode устанавливается в 0. Иначе, он устанавливается на первый символ в NumberString, который привел ошибке преобразования.
Примечания
Предупреждение: более безопасно использовать SysUtils конверсионные подпрограммы, типа StrToFloat, где информация региона распознаётся. В частности символ, используемый для десятичной точки.
StrToInt Преобразует строку с целым значением в Integer
Пример кода : Иллюстрация успешного и неудачного преобразования строки с вещественным числом
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