Войти

Показать полную графическую версию : Decimal Delimiter


ParsVita
25-05-2004, 11:30
Подскажите, как получить, или установить разделитель десятичных дробей из проги, чтоб StrToFloat и прочее такое работало.
Borland Delphi 6.0 + Windows 2000 Server

Guest
27-05-2004, 11:16
MySeparator:Char='.'
SaveSeparator:char
SaveSeparator:=DecimalSeparator
DecimalSeparator:=MySeparator
.......
DecimalSeparator:=SaveSaparator

RealRascal
06-06-2004, 14:11
вообще говоря, для этих целей есть trystrtofloat() - по крайней мере, в delphi7.

Еще есть val() - возвращает номер неправильного символа в строке, которая предположительно является числом.

Если известно что строка гарантировано является числом, то я бы сделал так. В одной системе может быть установлен один разделитель, в другой - другой, и это либо точка, либо запятая. Можно заменить точку и запятую на DecimalSeparator - это функция возвращает разделитель в системе, т.е. какой бы ни был разделитель в системе, он заменит точку или запятую.

float1:=strtofloat(stringreplace(stringreplace(edit1.text,'.',decimalseparator,[]),',',decimalseparator,[]));




© OSzone.net 2001-2012