ParsVita
25-05-2004, 11:30
Подскажите, как получить, или установить разделитель десятичных дробей из проги, чтоб StrToFloat и прочее такое работало.
Borland Delphi 6.0 + Windows 2000 Server
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,[]));
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.