DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH

# (r5rs.info.gz) Exactness

Info Catalog (r5rs.info.gz) Numerical types (r5rs.info.gz) Numbers (r5rs.info.gz) Implementation restrictions
```
6.2.2 Exactness
---------------

Scheme numbers are either exact or inexact.  A number is exact if it
was written as an exact constant or was derived from exact numbers
using only exact operations.  A number is inexact if it was written as
an inexact constant, if it was derived using inexact ingredients, or if
it was derived using inexact operations. Thus inexactness is a
contagious property of a number.

If two implementations produce exact results for a computation that did
not involve inexact intermediate results, the two ultimate results will
be mathematically equivalent.  This is generally not true of
computations involving inexact numbers since approximate methods such
as floating point arithmetic may be used, but it is the duty of each
implementation to make the result as close as practical to the
mathematically ideal result.

Rational operations such as `+' should always produce exact results
when given exact arguments.  If the operation is unable to produce an
exact result, then it may either report the violation of an
implementation restriction or it may silently coerce its result to an
inexact value.  See section  Implementation restrictions.

With the exception of `inexact->exact', the operations described in this
section must generally return inexact results when given any inexact
arguments.  An operation may, however, return an exact result if it can
prove that the value of the result is unaffected by the inexactness of
its arguments.  For example, multiplication of any number by an exact
zero may produce an exact zero result, even if the other argument is
inexact.

```
Info Catalog (r5rs.info.gz) Numerical types (r5rs.info.gz) Numbers (r5rs.info.gz) Implementation restrictions
automatically generated byinfo2html