Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > String -> Real


Автор: MaxiFOBOS 28.5.2006, 23:26
У меня небольшой траббл!!! Ну вот всё перепробовал!!! Короче задача такая!!! В строчной переменной (string) у меня получается значение числовое в виде дясятичной дробе (0,3879 или шо то вроде -0,345345).Короче надо как то полноценно сконвертировать это значение в переменную real типа. Иными словами : как сконвертить real значение в стринговой переменной в real тип переменной(string to real  smile )???  

Автор: skyboy 29.5.2006, 00:08
StrToFloat?  

Автор: Palladin 29.5.2006, 00:11
ну вроде так вот
strtodloat и floattostr

пример

var
x:string;
y:real;
begin

x:='0,238562';
y:=strtofloat(x);
end;


должно пахать.... 

Автор: Mechanic 29.5.2006, 08:01
Код

DecimalSeparator := ',';
try
   f := StrToFloat(s);
except
   ShowMessage(s + ' is not a valid floating value :(');
end;


Добавлено @ 08:07 
Or for no Exceptions:

Код

var s: string; f: real; e: integer;
begin
    Val(s, f, e);
    if e <> 0 then
        ShowMessage(s + ' is not a valid floating value :(');
end;

Этот метод универсальнее, т.к. годится и для целых, и для плавающих. К тому же, он понимает шестнадцатиричные числа, начинающиеся с "$". Только точку нужно, но не запятую в качестве DecimalSeparator.  

Автор: skyboy 29.5.2006, 08:23
Mechanic, ну, запятую на точку можно заменить RaplceStr - и всё будет путём smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)