Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.30;
Скачать: CL | DM;

Вниз

String and Single   Найти похожие ветки 

 
Mr.Vlad ©   (2007-08-31 15:20) [0]

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


 
ElectriC ©   (2007-08-31 15:23) [1]

FloatToStr


 
@!!ex ©   (2007-08-31 15:23) [2]

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


 
ElectriC ©   (2007-08-31 15:48) [3]

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

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. Без шуток :\


 
ANTPro ©   (2007-08-31 16:45) [4]

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

© KOL :)


 
ElectriC ©   (2007-08-31 17:33) [5]


> ANTPro ©

Да-да :)


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

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

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


 
ElectriC ©   (2007-08-31 22:25) [7]

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


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

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


 
Mr.Vlad ©   (2007-09-01 22:08) [9]

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

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


 
@!!ex ©   (2007-09-02 13:13) [10]

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

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


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

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


 
SergeR ©   (2007-09-02 18:07) [11]

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



Страницы: 1 вся ветка

Текущий архив: 2007.09.30;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.03 c
15-1188567470
Kolan
2007-08-31 17:37
2007.09.30
Целые числа в object inspector е можно задавать буквами&amp;#133


2-1189083907
voe
2007-09-06 17:05
2007.09.30
Есть стандартная функция провки переменной на тип?


2-1189059357
Bast
2007-09-06 10:15
2007.09.30
---------------


2-1188802512
Dmitriy_
2007-09-03 10:55
2007.09.30
Как нажать на кнопку в окне браузера


15-1188675443
vpbar
2007-09-01 23:37
2007.09.30
Организм не принимает С++