Decimal Arithmetic Specification, version 1.70
Copyright (c) IBM Corporation, 2009. All rights reserved. ©
7 Apr 2009
[contents | next]


This document defines a general purpose decimal arithmetic for both limited precision floating-point (as defined by the IEEE 754 standard[1]  approved in June 2008) and for arbitrary precision floating-point (following the same principles as IEEE 754 and the earlier IEEE 854-1987 standard).[2]  In addition to floating-point arithmetic, integer and unrounded floating-point arithmetic are included as subsets.

The primary audience for this document is implementers, so examples and other explanatory material are included. Explanatory material is identified as Notes, Examples, or footnotes, and is not part of the formal specification.

Appendix A describes a simplified subset of the full arithmetic which implements the decimal floating-point arithmetic defined in the ANSI standard X3.274-1996[3]  (this provides the model for the unrounded floating-point rules). Appendix B summarizes the design concepts behind the decimal arithmetic. Appendix C lists the changes to this specification.

This document in various softcopy formats, together with a reference implementation, testcases, concrete representations (encodings), and background information may be found at

Comments on this draft are welcome. Please send any comments, suggestions, and corrections to the author, Mike Cowlishaw (


Very many people have contributed to the arithmetic described in this document, especially the 1980 Rexx Language Committee, the IBM Rexx Architecture Review Board, the IBM Vienna Compiler group, the X3 (now NCITS) J18 technical committee, the authors of the IEEE 854 standard, and the members of the IEEE 754r (revision) committee. Special thanks for their contributions to the current design and this document are due to Aahz, Merav Aharoni, Nelson Beebe, Joshua Bloch, Dirk Bosmans, Paul-Georges Crismer, Joe Darcy, Gunnar Degnbol, Mark Dickinson, John Ehrman, Kit George, Peter Golde, Michel Hack, Brian Marks, Ilan Nehama, Dave Raggett, Fred Ris, Eric Schwarz, Ron Smith, and Phil Yeh.
[1] IEEE 754-2008 – IEEE Standard for Floating-Point Arithmetic, The Institute of Electrical and Electronics Engineers, Inc., New York, 2008. (In press.)
[2] IEEE 854-1987 – IEEE Standard for Radix-Independent Floating-Point Arithmetic, The Institute of Electrical and Electronics Engineers, Inc., New York, 1987.
[3] American National Standard for Information Technology – Programming Language REXX, X3.274-1996, American National Standards Institute, New York, 1996.

[contents | next]