区分一个数对象是对一个数精确表示还是存在舍入误差的表示非常有用。例如对一个数据结构进行索引操作需要索引数值是精确表示的,另一个例子是线性代数符号系统中的多项式系数也是需要精确表示的. 另一方面,测量的结果的不准确性是内在的,无理数只能使用有理数近似表示。为了同时顾及准确数(exact)和已知非准确数(inexact)的使用,Scheme 特意区分了准确数对象(exact number object)和非准确数对象(inexact number object)。这种区分是和数的类型维度是正交的。
仅当值为一个 exact数 时或者由 exact数对象 通过 exact运算 得到的结果才是 exact数。exact数 和数学中的数有明显的对应关系。
相反的,inexact数字面值表示的数、继承自 inexact数 或 继承自 inexact操作符的数是 inexact数。
exact算术运算符在下列意义下可靠:如果一个准确数传入任何在小节-Propagation of exactness and inexactness中定义的算术过程,得到的仍是准确数,结果在数学上上是正确的。一般对于非准确数对象来说不是这样的,因为它们涉及到一些如浮点数的近似方法,但是实现过程中应该尽量保证得到的结果尽量和数学上的理想值接近。