Форум: "Начинающим";
Текущий архив: 2007.09.02;
Скачать: [xml.tar.bz2];
ВнизКол-во символом в числе. Найти похожие ветки
← →
Цукор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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.043 c