411 REFERENCE · Wikibooks
Ada Programming/Attributes/'Unbiased Rounding
Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.
Attributes 'Unbiased_Rounding
__TOC__
Description
X'Unbiased_Rounding(Y) is an Ada attribute where X is any floating-point type and Y is any instance of that type. This attribute represents the closest integer value to Y. If Y is exactly between two integer values (e.g. 1.5), then the result is the even value (e.g. 2.0).
Example
X : Float := 1.5;
Y : Float := 1.0;
Z : Float := 1.999;
...
Assert(Float'Unbiased_Rounding(X) = 2.0); OK
Assert(Float'Unbiased_Rounding(Y) = 1.0); OK
Assert(Float'Unbiased_Rounding(Z) = 2.0); OK
Assert(Float'Unbiased_Rounding(X) = 1.0); Wrong
...
X := 2.5;
Assert(Float'Unbiased_Rounding(X) = 2.0 ); OK
Assert(Float'Unbiased_Rounding(X) = 3.0 ); Wrong
See also
Wikibook
Ada Programming
Ada Programming/Attributes
Ada Programming/Attributes/'Ceiling
Ada Programming/Attributes/'Floor
Ada Programming/Attributes/'Rounding
Ada Reference Manual
13 3 Operational and Representation Attributes
K Language-Defined Attributes
Unbiased Rounding