首页 > 解决方案 > 科学计数法和非科学计数法值在一行中

问题描述

这有效:Ada.Text_IO.Put_Line("Oil Rate : " & Float'Image(oil_float); Ada.Text_IO.Put_Line(oil_float, Exp => 0);

但这不是:Ada.Text_IO.Put_Line("Oil Rate : " & Float'Image(oil_float, Exp => 0) & " is " & (oil_float, Exp => 0));

我想把它放在一行中。可能吗?

标签: ada

解决方案


您可以编写自己的函数:

function Float_Image (Value : Float; Exponent : Natural) return String is
   Result : String (1 .. 64);
begin
   Ada.Float_Text_IO.Put (Result, Value, Exp => Exponent);
   return Ada.Strings.Fixed.Trim (Result, Ada.Strings.Left);
end Float_Image;

(请注意不幸的固定长度中间结果;不过足以容纳Float’Last


推荐阅读