DelphiBasics
Val
Procedure
Converts number strings to integer and floating point values System unit
 procedure Val(const NumberString string; var NumberVar Number Type; var ErrorCode Integer);
Description
The Val procedure is an older Delphi procedure that can convert a string NumberString into both integer and floating point variables.
 
The variable NumberVar must be appropriate to the number string. Specifically, an integer string value must be provided when NumberVar is an Integer type.
 
If the conversion succeeds, then ErrorCode is set to 0. Otherwise, it is set to the first character in NumberString that failed the conversion.
Notes
Warning : it is safer to use the SysUtils conversion routines, such as StrToFloat where locale information is recognised. In particular, the character used for the decimal point.
Related commands
ChrConvert an integer into a character
IntToStrConvert an integer into a string
StrToIntConvert an integer string into an Integer value
 Download this web site as a Windows program.




 
Example code : Illustrate successful and unsuccessful floating point number string conversions
var
  numberString : string;
  float        : Extended;
  errorPos     : Integer;
begin
  // Set up a valid floating point number string
  numberString := '12345.678';

  // Convert it into a value
  Val(numberString, float, errorPos);

  // Display the string and converted value
  if errorPos = 0
  then ShowMessageFmt('Val(%s) = %12.3f',[numberString,float]);

  // Val ignores the Decimal Separator - SysUtils converters don't
  DecimalSeparator := '_';
  numberString := '12345_678';
  Val(numberString, float, errorPos);
  if errorPos = 0
  then ShowMessageFmt('Val(%s) = %12.3f',[numberString,float])
  else ShowMessageFmt('Val(%s) failed at position %d',
                      [numberString, errorPos]);
end;
Show full unit code
  Val(12345.678) = 12345.678
  Val(12345_678) failed at position 6
 
Delphi Programming © Neil Moffatt . All rights reserved.  |  Home Page