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

Posted

技术标签:

【中文标题】Ada95:如何在指数中使用浮点数?【英文标题】:Ada95: How to use Float in Exponent? 【发布时间】:2017-10-22 10:48:26 【问题描述】:

我尝试过的:

 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 但我不知道如何使用它。

【问题讨论】:

【参考方案1】:

您可以使用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;

【讨论】:

你可以使用Ada.Numerics.Elementary_Functions,这是Generic_Elementary_Functions已经为Float实例化了。

以上是关于Ada95:如何在指数中使用浮点数?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 C 中的浮点数中提取有偏指数?

ieee754单精度浮点数 表示方法

返回浮点数的指数值

如何在没有指数表示法的情况下将浮点数作为字符串获取?

如何使用 C 中的常量格式化将浮点数转换为指数

如何删除浮点数的“.0”?