Справочник функций и процедур Delphi: Val

  Навигация по первой букве:

A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z

  Навигация по категории:

Compiler directives, Directives, Keywords / Types, Variables, Constants / Functions, Procedures

  Реклама:

 

Val
Процедура
Конвертирует числовые строки в целое число или число с плавающей запятой System unit
  procedure Val ( const NumberString : string; var NumberVar : Number Type; var ErrorCode : Integer ) ;

Google  
 
Описание
Процедура 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
 


Copyright © 2004-2016 Delphi Sources (источник – "DelphiBasics.ru")
 


Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook