![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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