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