Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

String and Single [Delphi, Windows]


Mr.Vlad ©   (2007-08-31 15:20:00) 

Пожалуйста помогите. Я пытаюсь вывести в Labe1.Caption значение Sphere1.position.x, но не совпадают типы string and single. Потскажите какую-нибудь процедуру или функцию перевода single в string.


SergeR   (2007-09-02 18:07:00) [1]

Следующим вопросом будет: Как преобразовать string в single )))


@!!ex   (2007-09-02 13:13:00) [2]

> А я и есть новичёк.

Я про то, что не там вопрос задаешь.
Здесь есть специальная конференция "Начинающим". Имей привычку такие вопросы задавать там.


> Только 3 месяца как разбираюсь с GLScene.

*две пальца в рот*


Mr.Vlad   (2007-09-01 22:08:00) [3]

Спасибо, FloatToStr работает.
> Это вообще к новичкам...

А я и есть новичёк. Только 3 месяца как разбираюсь с GLScene.


sdubaruhnul   (2007-08-31 23:27:00) [4]

А КОЛ то не очень, оказывается...


ElectriC   (2007-08-31 22:25:00) [5]

Вообще меня затупило тогда и я подумал про FloatToStrF(вроде бы):))


@!!ex   (2007-08-31 18:14:00) [6]

> Если не разберёшься, как работать со стандартной функцией

ЛОЛ...
Как в ней можно не разобраться???


ElectriC   (2007-08-31 17:33:00) [7]


> ANTPro ©

Да-да :)


ANTPro   (2007-08-31 16:45:00) [8]

> [3] ElectriC ©   (31.08.07 15:48)

© KOL :)


ElectriC   (2007-08-31 15:48:00) [9]

Если не разберёшься, как работать со стандартной функцией, то вот:

function ExtToStr( E : Extended ) : String;
   function UnpackFromBuf( const Buf: array of Byte; N: Integer ): String;
   var I, J, K, L: Integer;
   begin
     SetLength( Result, 16 );
     J := 1;
     for I := 7 downto 0 do
     begin
       K := Buf[ I ] shr 4;
       Result[ J ] := Char( Ord('0') + K );
       Inc( J );
       K := Buf[ I ] and $F;
       Result[ J ] := Char( Ord('0') + K );
       Inc( J );
     end;

     Assert( Result[ 1 ] = '0', 'error!' );
     Delete( Result, 1, 1 );

     if N <= 0 then
     begin
       while N < 0 do
       begin
         Result := '0' + Result;
         Inc( N );
       end;
       Result := '0.' + Result;
     end
       else
     if N < Length( Result ) then
     begin
       Result := Copy( Result, 1, N ) + '.' + CopyEnd( Result, N + 1 );
     end
       else
     begin
       while N > Length( Result ) do
       begin
         Result := Result + '0';
       end;
       Exit;
     end;

     L := Length( Result );
     while L > 1 do
     begin
       if not (Result[ L ] in ['0','.']) then break;
       Dec( L );
       if Result[ L + 1 ] = '.' then break;
     end;
     if L < Length( Result ) then Delete( Result, L + 1, MaxInt );

   end;

var
 S: Boolean;
var F: Extended;
   N: Integer;
   Buf1: array[ 0..9 ] of Byte;
   I10: Integer;
begin
 Result := '0';
 if E = 0 then Exit;
 S := E < 0;
 if S then E := -E;

 N := 15;
 F := 5E12;
 I10 := 10;
 while E < F do
 begin
   Dec( N );
   E := E * I10;
 end;
 if N = 15 then
 while E >= 1E13 do
 begin
   Inc( N );
   E := E / I10;
 end;

 while TRUE do
 begin
   asm
     FLD    [E]
     FBSTP  [Buf1]
   end;
   if Buf1[ 7 ] <> 0 then break;
   E := E * I10;
   Dec( N );
 end;

 Result := UnpackFromBuf( Buf1, N );

 if S then Result := '-' + Result;
end;

P.S. Парень, вообще, купи или скачай книженцию "Delphi для чайников".
P.P.S. Без шуток :\


ElectriC   (2007-08-31 15:23:00) [10]

FloatToStr


@!!ex   (2007-08-31 15:23:00) [11]

Ну ты даешь...
НЕ ожидал такого вопроса...
Это вообще к новичкам...
FloatToStr
IntToStr


Наверх

Титульная страница Поиск, карта сайта Написать письмо