TextToFloat

Convert a buffer to a float value.

Declaration

Source position: sysstrh.inc line 208

  function TextToFloat(Buffer: PChar; out Value: Extended) : Boolean;
  function TextToFloat(Buffer: PChar; out Value: Extended; 
                      const FormatSettings: TFormatSettings) : Boolean;
  function TextToFloat(Buffer: PChar; out Value; ValueType: TFloatValue)
                       : Boolean;
  function TextToFloat(Buffer: PChar; out Value; ValueType: TFloatValue; 
                      const FormatSettings: TFormatSettings) : Boolean;

Description

TextToFloat converts the string in Buffer to a floating point value. Buffer should contain a valid string representation of a floating point value (either in decimal or scientific notation).

If the buffer contains a decimal value, then the decimal separator character must be the value of the DecimalSeparator variable.

Remark

Note that this behaviour has changed, earlier implementations also allowed the use of '.' in addition to the decimal separator character. !!!

The function returns True if the conversion was successful.

Errors

If there is an invalid character in the buffer, then the function returns False

See also

Name Description
FloatToStr Convert a float value to a string using a fixed format.
FormatFloat Format a float according to a certain mask.
StrToFloat Convert a string to a floating-point value.

Example

Program Example91;
{ This program demonstrates the TextToFloat function }
{$mode objfpc}
{$h+ }
Uses SysUtils;
Const
  NrValues = 5;
  TestStr : Array[1..NrValues] of pchar =
           ('1,1','-0,2','1,2E-4','0','1E4');
Procedure Testit;
Var
  I : Integer;
  E : Extended;
begin
  Writeln('Using DecimalSeparator : ',DecimalSeparator);
  For I:=1 to NrValues do
    begin
    Writeln('Converting : ',TestStr[i]);
    If TextToFloat(TestStr[i],E) then
      Writeln('Converted value : ',E)
    else
      Writeln('Unable to convert value.');
    end;
end;
Begin
  DecimalSeparator:=',';
  Testit;
  DecimalSeparator:='.';
  Testit;
End.