Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Decimal Delimiter (http://forum.oszone.net/showthread.php?t=29681)

ParsVita 25-05-2004 11:30 205302

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

Guest 27-05-2004 11:16 205303

MySeparator:Char='.'
SaveSeparator:char
SaveSeparator:=DecimalSeparator
DecimalSeparator:=MySeparator
.......
DecimalSeparator:=SaveSaparator

RealRascal 06-06-2004 14:11 205304

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

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

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

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


Время: 18:00.

Время: 18:00.
© OSzone.net 2001-