Пример успешного и неудачного преобразования строки с вещественным числом
Код:
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 игнорирует десятичный разделитель
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