跳转到内容

Ada 编程/属性/'无偏舍入

来自维基教科书,开放的书籍,用于开放的世界

Ada. Time-tested, safe and secure.
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);  -- OK
pragma Assert(Float'Unbiased_Rounding(Y) = 1.0);  -- OK
pragma Assert(Float'Unbiased_Rounding(Z) = 2.0);  -- OK
pragma Assert(Float'Unbiased_Rounding(X) = 1.0);  -- Wrong
...
X := 2.5;
pragma Assert(Float'Unbiased_Rounding(X) = 2.0 );  -- OK
pragma Assert(Float'Unbiased_Rounding(X) = 3.0 );  -- Wrong

维基教科书

[编辑 | 编辑源代码]

Ada 参考手册

[编辑 | 编辑源代码]
华夏公益教科书