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

Вниз

Кол-во символом в числе.   Найти похожие ветки 

 
Цукор5   (2007-08-07 22:54) [0]

Имеем 100 состоящее из 3 чисел.
Имеем 1000 соостоящее из 4 чисел.

Как определить кол-во символом(чисел) в некотором значении ?

Есть ли другой вариант, нежели мой ?
Caption:=IntToStr(Length(IntToStr(High(Integer))));


 
JanMihail ©   (2007-08-07 22:57) [1]

i: Integer;
col: Integer;
....
i := 123456433;
col := length(IntToStr(i));
ShowMessage(IntToStr(Col));


Разве сложно? Вполне нормально. А как ты хотел?


 
Цукор5   (2007-08-07 23:01) [2]

2 JanMihail

Рассмешил ;) А чем [0] отличается от [1] ???


 
JanMihail ©   (2007-08-07 23:04) [3]


> А чем [0] отличается от [1] ???

в [1] нет High


 
JanMihail ©   (2007-08-07 23:06) [4]

Все равно другого варианта на мой взгляд нету.


 
Virgo_Style ©   (2007-08-07 23:29) [5]

для положительных - целая часть логарифма по основанию 10 плюс 1 ?


 
MetalFan ©   (2007-08-07 23:38) [6]

есть)
function GetFigureCount( ANumber: Longword ): Integer;
const
 C_10POWER : array [1..10] of Longword = (  10, 100, 1000,
                                           10000,100000,1000000,
                                           10000000, 100000000, 1000000000,
                                           10000000000 );
var
 lInt: Integer;
begin
 for Result := Low(C_10POWER) to High(C_10POWER) do
 begin
   if ( ANumber div C_10POWER[Result] ) = 0 then
     Break;
 end;
end;

нечто такое. зато работать будет имхо быстрее...


 
MetalFan ©   (2007-08-07 23:41) [7]


> Virgo_Style ©   (07.08.07 23:29) [5]

точно)))

uses Math;
...
function GetFigureCount( ANumber: Longword ): Integer;
var
 lInt: Integer;
begin
 Result := 1;
 if ANumber <=0 then Exit;
 Result := Trunc( Log10( ANumber ) ) + 1;
end;


 
Думкин ©   (2007-08-08 07:15) [8]

> if ANumber <=0 then Exit;

И что возвращаем? И у отрицательного числа нельзя посчитать число цифирь в записи? А если знак переобуть?


 
MetalFan ©   (2007-08-08 10:07) [9]


> Думкин ©   (08.08.07 07:15) [8]

ну да, ну да)
uses Math;
...
function GetFigureCount( ANumber: Longword ): Integer;
var
lInt: Integer;
begin
Result := 1;
if ANumber =0 then
  Exit
else
 ANumber := Abs( ANumber  );
Result := Trunc( Log10( ANumber ) ) + 1;
end;


 
Dimaxx ©   (2007-08-08 13:09) [10]


> А чем [0] отличается от [1] ???

Тем, что в [0] всегда будет возвращаться одно и тоже число.


 
DevilDevil ©   (2007-08-08 14:49) [11]

Longword = DWORD = Cardinal

вообще сравнивается на равенство нулю.
тестирование на минус явно лишнее.



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

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

Наверх




Память: 0.49 MB
Время: 0.027 c
15-1186039685
nosfik
2007-08-02 11:28
2007.09.02
Пути к библиотекам


15-1186074214
TStas
2007-08-02 21:03
2007.09.02
По каким книжкам люди инстоляторы писать учатся?


2-1186447650
rosl
2007-08-07 04:47
2007.09.02
null на 0


15-1185554920
oxffff
2007-07-27 20:48
2007.09.02
Second Life, Second Chance for CodeGear


8-1164745849
Oburec
2006-11-28 23:30
2007.09.02
Как отобразить графику рисуемую c OpenGL на простой форме)