![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка при конвертации.... [D6, WinXP]
Konstantin555 © (2006-08-08 17:26:00)Не пойму, почему выскакивает ошибка при конвертации и как её исправить...
Вот работающий код:
procedure TForm1.Button2Click(Sender: TObject);
var
s,s1,s2:Extended;
begin
s1:=1.25;
s2:=1.30;
s:=s1+s2;
ShowMessage(FloatToStr(s));
end;
Вот неработающий код:
procedure TForm1.Button2Click(Sender: TObject);
var
s,s1,s2:Extended;
begin
s1:=StrToFloat('1.25');
s2:=StrToFloat('1.30');
s:=s1+s2;
ShowMessage(FloatToStr(s));
end;
На первый взгляд код практически одинаков, идёт обычная конвертация, но во втором случае выскакивает ошибка, связанная с конвертацией...
Как её исправить и из-за чего появляется ошибка?
Desdechado (2006-08-08 18:24:00) [1]> Изменил разделитель в региональных настройках
Самое кривое решение.
Юзер имеет право под себя настроить, как ему нравится. А ты должен реализовать независимость своей программы от этого права.
См. еще раз [2]
Konstantin555 (2006-08-08 18:01:00) [2]Desdechado, StriderMan, спасибо! Изменил разделитель в региональных настройках на точку и всё заработало!
StriderMan (2006-08-08 17:33:00) [3]от региональных настроек все зависит. у тебя наверное разделитель целой и дробной частей - запятая.
Ega23 (2006-08-08 17:32:00) [4]Всё прекрасно отработало, показало 2.55
Desdechado (2006-08-08 17:32:00) [5]читать про региональные настройки, DecimalSeparator, Format()