Ada 编程/属性/'无偏舍入
外观
X'Unbiased_Rounding(Y) 是 Ada 属性,其中 X 是任何浮点类型,Y 是该类型的任何实例。此属性表示最接近 Y 的整数。如果 Y 恰好位于两个整数之间(例如 1.5),则结果为偶数(例如 2.0)。
X : Float := 1.5; Y : Float := 1.0; Z : Float := 1.999; ...pragma
Assert(Float'Unbiased_Rounding(X) = 2.0); -- OKpragma
Assert(Float'Unbiased_Rounding(Y) = 1.0); -- OKpragma
Assert(Float'Unbiased_Rounding(Z) = 2.0); -- OKpragma
Assert(Float'Unbiased_Rounding(X) = 1.0); -- Wrong ... X := 2.5;pragma
Assert(Float'Unbiased_Rounding(X) = 2.0 ); -- OKpragma
Assert(Float'Unbiased_Rounding(X) = 3.0 ); -- Wrong