[Overview][Constants][Types][Classes][Procedures and functions][Variables][Index] | Reference for unit 'sysutils' (#rtl)

# 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

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

## 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.