Datasheet

Floating-point Support
5-34 Copyright © 1999-2001 ARM Limited. All rights reserved. ARM DUI 0067D
5.5.2 Arithmetic and rounding
Arithmetic is generally performed by computing the result of an operation as if it were
stored exactly (to infinite precision), and then rounding it to fit in the format. Apart from
operations whose result already fits exactly into the format (such as adding 1.0 to 1.0),
the correct answer is generally somewhere between two representable numbers in the
format. The system then chooses one of these two numbers as the rounded result. It uses
one of the following methods:
Round to nearest
The system chooses the nearer of the two possible outputs. If the correct
answer is exactly half-way between the two, the system chooses the one
where the least significant bit of Frac is zero. This behavior
(round-to-even) prevents various undesirable effects.
This is the default mode when an application starts up. It is the only mode
supported by the ordinary floating-point libraries. (Hardware
floating-point environments and the enhanced floating-point libraries,
g_avp
for example, support all four modes. See Library naming
conventions on page 4-105.)
Round up, or round toward plus infinity
The system chooses the larger of the two possible outputs (that is, the one
further from zero if they are positive, and the one closer to zero if they are
negative).
Round down, or round toward minus infinity
The system chooses the smaller of the two possible outputs (that is, the
one closer to zero if they are positive, and the one further from zero if they
are negative).
Round toward zero, or chop, or truncate
The system chooses the output that is closer to zero, in all cases.