suivant: Approx. evaluation : evalf monter: Floating point representation. précédent: Examples of representations of   Table des matières   Index

## Difference between the representation of (3.1-3) and of 0.1

• representation of 0.1 :
We have :

0.1 = 2-4*(1 + + + + + + ...) = 2-4*( + )

hence = 1 and m = + ( + ), therefore the representation of 0.1 is
3f (00111111), b9 (10111001), 99 (10011001), 99 (10011001),
99 (10011001), 99 (10011001), 99 (10011001), 9a (10011010),

the last octet is 1010, indeed the 2 last bits 01 became 10 because the following digit is 1 (upper rounding).

• representation of a:=3.1-3 :
Computing a is done by adjusting exponents (here nothing to do), then substract the mantissa, and adjust the exponent of the result to have a normalized float. The exponent is = - 4 (that corresponds at 2*2-5) and the bits corresponding to the mantissa begin at 1/2 = 2*2-6 : the bits of the mantissa are shifted to the left of 5 positions and we have :
3f (00111111), b9 (10111001), 99 (10011001), 99 (10011001),
99 (10011001), 99 (10011001), 99 (10011001), 9a (10100000),

Therefore a > 0.1 and a - 0.1 = 1/250 +1/251 (since 100000-11010=110)
Remark
This is the reason why
floor(1/(3.1-3))
returns 9 and not 10 when Digits:=14.

suivant: Approx. evaluation : evalf monter: Floating point representation. précédent: Examples of representations of   Table des matières   Index
giac documentation written by Renée De Graeve and Bernard Parisse