Как узнать сколько знаков после запятой?

Cooper
Дата: 14.02.2003 10:59:54
Есть число типа real.
Как узнать сколько в нем знаков после запятой?

Спасибо.
m_kus
Дата: 14.02.2003 11:30:15
Первое, что приходит на ум:

function SignsAfterDecimalPoint(x:real):integer;
begin
result:=max(Length(FloatToStr(x-Trunc(x)))-2,0);
end;
Olton
Дата: 14.02.2003 11:32:05
Попробуй так

var
i: integer;
j: double;
k: string;

begin
J:=1.111111111;
i:=j mod 1;
k:=IntToStr(i);
end;
Dim Grishin
Дата: 14.02.2003 13:17:46
У рила? знаков после запятой? гы.гы...

значит я думаю так..
надо знать сколько байт целая часть занимает. по 1 байту за каждый разряд..
ну...допустим вообщем рил 8 байт...

и так...

число 123.3 имеет 5 знаков после запятой ... я прав?

(камнями не кидаться)
Cooper
Дата: 14.02.2003 13:29:16
Лови булыжник - Бред полный (в смысле ни к селу ни к городу).
Dim Grishin
Дата: 14.02.2003 13:38:54
Щам проверю... падажи.
Dim Grishin
Дата: 14.02.2003 13:43:06
похоже я переработал...
Dim Grishin
Дата: 14.02.2003 13:45:41
только на работу пришел ... а тут рилы всякие... надо подумать...
про байты сорри...
Shark
Дата: 14.02.2003 16:18:17
По моему,два real не бывают равны. В том смысле, что 2*2 могут быть равны 3,99999999999999999.
По моему, Вам надо задаться каким то Эпсилон, и считать примерно так:
i=0
if Abs(round(X,i)-X)>Epsilon then
i=i+1
goto if
else
Exit(Результат в I)
Cooper
Дата: 14.02.2003 16:32:37
У меня есть переменная типа real, в которой может быть число максимум с двумя знаками после запятой (это сто пудов). Такого не может быть - 3,99999.