![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как определить, делится ли одно Double на другое Double нацело. [D7, XP, 2003]
SkyN © (2009-11-12 10:48:00)procedure TForm1.FormCreate(Sender: TObject);
var
a,b: Double;
begin
a := 1;
b := 0.1;
caption := FloatToStr( Frac (a/b) );
end;
Возвращает 0,999999999999 , а я надеялся увидеть 0, ну или близкое к 0 значение.
Понимаю почему так происходит, не могу понять как поправить.
SkyN (2009-11-12 11:05:00) [21]Пока я придумал только следующее
function ДелитьсяНацело(a,b: Double): Boolean;
var
c: integer;
begin
c := Round(a*100) mod Round(b*100)
result := (c = 0);
end;
но т.к. работать она будет далеко не для всех входных параметров, применять её меня коробит.
SkyN (2009-11-12 11:02:00) [22]и как мне может помочь round, trunc ?
мне нужна такая функция
function ДелитьсяНацело(a,b: Double): Boolean;
a b result
1 0.1 true
1 0.09 false
1 0.11 false
brother (2009-11-12 10:49:00) [23]round, trunc ?