![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Бага в IntPower для F_P
Galkov © (2007-02-03 13:44:00)
//[function IntPower]
function IntPower(Base: Extended; Exponent: Integer): Extended;
{$IFDEF F_P}
begin
if Exponent = 0 then
begin
Result := 1.0;
Exit;
end;
if Exponent < 0 then
begin
Exponent := -Exponent;
Base := 1.0 / Base;
end;
Result := Base;
REPEAT
Result := Result * Base;
Dec( Exponent );
UNTIL Exponent <= 0;
end;
{$ELSE DELPHI}
Даже и комментировать неудобно :((
либо так:
Result := Base;
WHILE Exponent>1 do begin
Result := Result * Base;
Dec( Exponent );
end;
либо эдак:
Result := 1.0;
REPEAT
Result := Result * Base;
Dec( Exponent );
UNTIL Exponent <= 0;
но уж не так, как в дистрибутиве :((
Galkov (2007-02-05 01:41:00) [21]
> А чему будет равно 2**(-1). В моем варианте 0.5, как и должно
> быть
Не правда
В Вашем варианте 0.25 !!!
Vladimir Kladov (2007-02-04 09:00:00) [22]хорошо. Вопрос встречный: 2**0 = ? по вашему варианту получается 2. Математика утверждает, что 1. А чему будет равно 2**(-1). В моем варианте 0.5, как и должно быть. А в вашем?