Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.26;
Скачать: CL | DM;

Вниз

Ошибка при использовании функции StrToFloat   Найти похожие ветки 

 
raiks   (2004-09-12 14:08) [0]

Мне нужно прочитать текстовый файл, все значения в котором записаны в виде x.yyyy (напр. 6.3245), и преобразовать их в тип Extended для дальнейшей работы с ними. При попытке использовать функцию StrToFloat Delphi вываливается с ошибкой EConvertError.

e:= StrToFloat (‘6.3245’)        //  Ошибка EConvertError ‘6.3245 is not a valid floating point value’.

При этом, почему–то, строка  e:=StrToFloat (‘6,3245’), где вместо разделителя используется не точка, а запятая, ошибки не вызывает. С чем это связано и как можно решить эту проблему?

Спасибо.


 
Семен Сорокин ©   (2004-09-12 14:14) [1]

DecimalSeparator + f1
StrToFloatDef


 
Vulko ©   (2004-09-12 16:50) [2]

В win можно задать разделитель дробной и целой частей. По дефолту в русской версии разделителем является запятая.


 
Vulko ©   (2004-09-12 16:50) [3]

Удалено модератором


 
QuasiLamo ©   (2004-09-12 18:15) [4]

Пусть в строке s хранится число. После этих двух сток
s:=stringreplace(".",DecimalSeparator,s,[]);
s:=stringreplace(",",DecimalSeparator,s,[]);

какой бы ни был объявлен разделитель в системе, заменится на правильный.
Сам придумал и всегда так делаю... :)


 
KSergey ©   (2004-09-13 09:10) [5]

> [4] QuasiLamo ©   (12.09.04 18:15)

Либо так: (с учетом "x.yyyy")

var
  SavDecimalSeparator: Char;
begin
  SavDecimalSeparator := DecimalSeparator;
  DecimalSeparator := ".";
  try
    ... работаем с файлом ...
  finally
   DecimalSeparator := SavDecimalSeparator;
  end;
end;


Возможно, в данной частной задаче можно и не восстанавливать ;)


 
PVOzerski ©   (2004-09-13 10:05) [6]

Я бы использовал val вместо StrToFloat. Эта процедура всегда считает десятичным разделителем точку.


 
Mim1 ©   (2004-09-13 10:10) [7]


>  [5] KSergey ©   (13.09.04 09:10)
> > [4] QuasiLamo ©   (12.09.04 18:15)
>
> Либо так: (с учетом "x.yyyy")

Либо так

s[pos(s,".")] := DecimalSeparator;


 
raiks   (2004-09-13 11:17) [8]

Всем большое спасибо! Разобрался, все работает.



Страницы: 1 вся ветка

Текущий архив: 2004.09.26;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.041 c
14-1094627041
Drakosha
2004-09-08 11:04
2004.09.26
Батька супер джинс - сроки действия больше не действуют :(


3-1093603018
kyka
2004-08-27 14:36
2004.09.26
Поиск master-detail


1-1095136160
Faeton08
2004-09-14 08:29
2004.09.26
TPageControl


3-1093628825
Vemer
2004-08-27 21:47
2004.09.26
Как правильно отцепить Master - Dataset?


14-1094645477
Yakudza
2004-09-08 16:11
2004.09.26
Sybase ASE на шару отдают !