toRational (0.9). Reply

Wed, 18 Apr 2001 10:47:13 +0400

People wrote about   toRational (0.9) == 9%10  = False 
Probably, the source of a `bug' is a language agreement that the 
input is in decimal representation (`0.9') and its meaning is a 
floating approximation in _binary_ representation.
For example,  1%5  yields a finite mantissa in decimal representation 
and an infinite (periodic) mantissa for the binary representation of  
toBinary(1%5) = 1B % 1001B.
Therefore applying toRational to any finite float approximation 
(Double, or other) of 1%5 does not return 1%5.

- ?

Serge Mechveliani