Процедура Val – конвертирует числовые строки в целое число, или число с плавающей запятой

Процедура Val в Delphi конвертирует числовые строки в целое число, или число с плавающей запятой.

Процедура 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;

Main Menu