Описание |
Процедура Val является старой процедурой Delphi, которая может преобразовать строку NumberString в целое число или в число с плавающей запятой.
Переменная NumberVar должна соответствовать числовой строке. Должно быть обеспечено целочисленное строковое значение, чтобы получить целочисленный тип.
Если преобразование успешно, то ErrorCode устанавливается в 0. Иначе, он устанавливается на первый символ в NumberString, который привел ошибке преобразования.
|
|
Примечания |
Предупреждение: более безопасно использовать SysUtils конверсионные подпрограммы, типа StrToFloat, где информация региона распознаётся. В частности символ, используемый для десятичной точки.
|
|
Похожие команды |
Chr Конвертирует целое число в символ
IntToStr Конвертирует целое число в строку
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
|
|