Форум: "Основная";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];
ВнизОшибка при использовании функции 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.039 c