![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
О StrToFloat [D7, XP]
AlexDan © (2008-08-16 00:16:00)Даа.. Закрыли ветки, я и отойти не успел(..
Там был вопрос, помоему к @!!exу или {RASkov}у {произносить легко, писать сложно)..}
cha:= StrToFloat(Edit1.text);
на точку ругается, как описать реакцию на точку?
@!!ex (2008-08-16 09:58:00) [1]> [0] AlexDan © (16.08.08 00:16)
Да ты похожде и не читал что я писал...
Если вводит пользователь, то он должен САМ решать, какой разделитель использовать. ДЛ яэтого и придумали региональные настройки.
Свой разделитель имеет смысл использовать только для внутренних данных, к которым пользователь не имеет доступа.
Smile (2008-08-16 08:55:00) [2]
> AlexDan © (16.08.08 00:16)
Установи компонент
http://delphi4all.narod.ru/vcl/numedit.zip
и забудь о своих проблемах, компонент сам разберется с DecimalSeparator (для него это не опера:))
В крайнем случае поймешь как это реализуется
{RASkov} (2008-08-16 00:53:00) [3]На всякий случай:
Есть еще
TryStrToFloat
StrToFloatDef
может пригодятся в решении данного вопроса....
McSimm (2008-08-16 00:50:00) [4]
> как описать реакцию на точку?
try
StrToInt
except
подробное, но без мата, описание реакции на точки, запятые и прочие шалости
end;
McSimm (2008-08-16 00:47:00) [5]Так может и в случае с запятой то же самое ?
В системе есть настройка - что считать разделителем.
Если пользователь считает, что это запятая, то почему программа должна считать иначе ?
AlexDan (2008-08-16 00:39:00) [6]> {RASkov} © (16.08.08 00:37) [8]
Если так будут вводиться исходные данные, то USBдевайс надо к голове подключать)..
{RASkov} (2008-08-16 00:37:00) [7]> [5,6] McSimm © (16.08.08 00:35)
или даже так:
123.4,5
:)
McSimm (2008-08-16 00:36:00) [8]1234..5
123.4.5
{RASkov} (2008-08-16 00:36:00) [9]> [4] AlexDan © (16.08.08 00:30)
> будет всплывать какая-нибудь страшная картинка
Лучше какой-нить USBдевайс придумай, который по рукам будет бить если почует неладное...)
McSimm (2008-08-16 00:35:00) [10]а с двумя точками ?
AlexDan (2008-08-16 00:30:00) [11]> {RASkov} © (16.08.08 00:27) [3]
Адекватно реагировать - будет всплывать какая-нибудь страшная картинка..)
{RASkov} (2008-08-16 00:27:00) [12]> [2] AlexDan © (16.08.08 00:23)
Вопрос: А если в Edit1.Text введут число с запятой, что будешь делать? :)
AlexDan (2008-08-16 00:23:00) [13]Ага, спасибо, попробую)..
{RASkov} (2008-08-16 00:22:00) [14]> [0] AlexDan © (16.08.08 00:16)
Так и не удосужился посмотреть справку по второй(перегруженной) функции? :)
var E: Extended;
............
var FS: TFormatSettings;
begin
GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT, FS);
FS.DecimalSeparator:='.';
E:=StrToFloat({Edit1.text}'123.67', FS);
end;