Ada95:如何在指数中使用浮点数?

Ada95: How to use Float in Exponent?

我尝试过的:

 function Get_T(I : in Integer)
                return Float is
    T:Float;
    M:Float:=Float(I);
  begin
    T:=40.0*0.5**((60.0-M)/20.0);  -- FLOAT NOT ACCEPTED IN EXPONENT
    return T;
  end Get_T;

我需要一个特殊的包裹吗?我一直在看 Ada.Numerics.Generic_Elementary_Functions 但我不确定如何使用它。

您可以使用 Ada.Numerics.Elementary_Functions 包中定义的幂运算符:

With Ada.Numerics.Elementary_Functions;

function Get_T(I : in Integer) return Float is
    use Ada.Numerics.Elementary_Functions;
    T: Float;
    M: Float := Float(I);
begin
    T := 40.0 * 0.5 ** ((60.0 - M) / 20.0);
    return T;
end Get_T;