Главная страница
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.055 c
1-1094715587
~ShamaN~
2004-09-09 11:39
2004.09.26
вопрос по работе со строками


4-1092046294
a123
2004-08-09 14:11
2004.09.26
новое сетевое соединение и настроить свойства ТСP/IP


9-1085751026
MrAngel
2004-05-28 17:30
2004.09.26
Что лучше ID3DXMesh или использование IndexBuffer и VertexBuffer?


14-1094229906
VictorT
2004-09-03 20:45
2004.09.26
Уехать... оборвать все связи... сменить телефон, аську, мыло...


1-1095001534
TriX
2004-09-12 19:05
2004.09.26
ListBox ?