Delphi World - Корректная функция возведения в степень
Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Корректная функция возведения в степень

Автор: Mikel
WEB сайт: http://forum.vingrad.ru

function power(Base, Exponent: Extended): Extended;
var
  ex: extended;
begin
  power := 0;
  if (exponent <> 0)
    and (frac(trunc((1 / exponent) * 1000000) / 1000000) = 0)
    and (base < 0) then
  begin
    if round(1 / exponent) mod 2 = 0 then
      exit;
    ex := Exp(Exponent * Ln(-Base));
    power := -ex;
  end
  else
  begin
    if Exponent = 0.0 then
      power := 1.0
    else if (Base = 0.0) and (Exponent > 0.0) then
      power := 0.0
    else if (Frac(Exponent) = 0.0) and (Abs(Exponent) <= MaxInt) then
      power := IntPower(Base, Integer(Trunc(Exponent)))
    else
      power := Exp(Exponent * Ln(Base))
  end;
end;

Теперь можем вычислить нечетный корень из отрицательного числа

Проект Delphi World © Выпуск 2002 - 2017
Автор проекта: Эксклюзивные курсы программирования