Rogue Wave banner
Previous fileTop of DocumentContentsIndex pageNext file
Currency Module User's Guide
Rogue Wave web site:  Home Page  |  Main Documentation Page

9.2 Base 2 Representation of Decimal Fractions

The following table illustrates the nature of errors caused by base 2 representation of fractions. The table shows the value of 0.1 approximated in base 2, using increasing numbers of bits.

Table 9: Errors caused by base 2 representation of fractions 

Bits (1/2)^bits Base 2. approximation Error

1

0.50000000000000

0.00000000000000

0.10000000000000

2

0.25000000000000

0.00000000000000

0.10000000000000

3

0.12500000000000

0.00000000000000

0.10000000000000

4

0.06250000000000

0.06250000000000

0.03750000000000

5

0.03125000000000

0.09375000000000

0.00625000000000

6

0.01562500000000

0.09375000000000

0.00625000000000

7

0.00781250000000

0.09375000000000

0.00625000000000

8

0.00390625000000

0.09765625000000

0.00234375000000

9

0.00195312500000

0.09960937500000

0.00039062500000

10

0.00097656250000

0.09960937500000

0.00039062500000

11

0.00048828125000

0.09960937500000

0.00039062500000

12

0.00024414062500

0.09985351562500

0.00014648437500

13

0.00012207031250

0.09997558593750

0.00002441406250

14

0.00006103515625

0.09997558593750

0.00002441406250

15

0.00003051757812

0.09997558593750

0.00002441406250

16

0.00001525878906

0.09999084472656

0.00000915527344

17

0.00000762939453

0.09999847412109

0.00000152587891

18

0.00000381469727

0.09999847412109

0.00000152587891

19

0.00000190734863

0.09999847412109

0.00000152587891

20

0.00000095367432

0.09999942779541

0.00000057220459

The values in the table are not exact, since they were generated using the built-in base 2 floating point types and have been printed to a limited precision. As you can see, the size of the error decreases as a larger number of bits are used. Unfortunately, it will never be zero for a finite number of bits. As a result, calculations performed using a base 2 representation produce counter-intuitive and problematic results in many circumstances. For example, the following code fragment will result in an error message:



Previous fileTop of DocumentContentsIndex pageNext file

© Copyright Rogue Wave Software, Inc. All Rights Reserved.
Rogue Wave and SourcePro are registered trademarks of Rogue Wave Software, Inc. in the United States and other countries. All other trademarks are the property of their respective owners.
Contact Rogue Wave about documentation or support issues.