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

Вниз

Перевод строки в число с плавающей точкой   Найти похожие ветки 

 
Bill   (2003-07-18 16:06) [0]

Уважаемые мастера.
Возникла такая проблема: при переводе строки в число (double) возникает ошибка (Строка не является число), как я понял в разных версиях Windows (английская, русская ....) используются различные разделители (. ,), я стал использовать такую функцию

function Format_Real(s: string): double;
var FS: TFormatSettings;
i: integer;
( 0, fs)
Уважаемые мастера.
Возникла такая проблема: при переводе строки в число (double) возникает ошибка (Строка не является число), как я понял в разных версиях Windows (английская, русская ....) используются различные разделители (. ,), я стал использовать такую функцию

function Format_Real(s: string): double;
var FS: TFormatSettings;
i: integer;
temp: string;
begin
temp := s;
if temp = "" then
begin
result := 0;
exit;
end;

GetLocaleFormatSettings(0, fs);
for i:=1 to Length(s) do
if (temp[i] = ".") or (temp[i] = ",") then temp[i] := fs.DecimalSeparator;
result := strtofloat(temp);
end;
//fs: TFormatSettings;
это помогло в 90% процентов подобных случаев, но иногда она дает сбой, в чем может быть причина?


 
Clipper Chip   (2003-07-18 16:46) [1]

Cделай обработку ошибки в try except
внутри этой обработки пройдись повсем символам и сравнивай символ если "." замени на запятую и наоборот. Также если встретиться символ ни цифра ни точка ни запятая и ни знак "-" то
ошибка ввода числа. Вот так просто.



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

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

Наверх




Память: 0.47 MB
Время: 0.019 c
1-58719
Yuraz
2003-09-02 09:01
2003.09.18
Помогите доработать код, ввод Edit только цифр+запятая+backsp


1-58680
New guy
2003-09-04 18:32
2003.09.18
прога запускаемая с CD-ROM a


1-58760
Андрей Сенченко
2003-09-08 14:37
2003.09.18
Вдруг кто уже сталкивался


1-58726
Xtz
2003-09-07 21:01
2003.09.18
Как использывать таймер в консольном приложении и без QExtCtrls


14-58838
Knight
2003-08-28 21:54
2003.09.18
Взрослеем.... взрослеем...