Ada - 打印持续时间数据类型时如何控制小数位?

时间:2015-04-11 01:48:26

标签: ada

这是我的打印声明:

 timeInMili: duration;

 timeInMili := (finish - start)*1000;

 Put_Line(duration'image(timeInMili));

(乘以1000以从秒开始变为毫秒)

以上产生了很多小数位。有人可以给我看一个如何用一定数量的小数位打印的例子。

1 个答案:

答案 0 :(得分:5)

Ada.Text_IO.Fixed_IO是修正点类型的通用包,可以提供比'Image属性更好的输出格式控制。

一个例子:

with Ada.Text_IO; use Ada.Text_IO;
procedure Foo is
    package Duration_IO is new Fixed_IO(Duration);
    timeInMili: Duration := 1.0 / 3.0;
begin
    Duration_IO.Put(timeInMili, Fore => 0, Aft => 2);
    New_Line;
end Foo;

输出:

0.33