On 12/23/2013 07:44 PM, Mikael wrote:
Dear Marc or Brad,
First - Happy Holidays! :))
A Q:
#e0.3 3/10 (inexact->exact 0.3) 5404319552844595/18014398509481984
#e0.2 1/5 (inexact->exact 0.2) 3602879701896397/18014398509481984
Why the different results? Is there any way to get the #e behavior in a more effective way than (string-append "#e" (number->string n))?
(- .3 3/10)
I don't think so. inexact->exact works on numbers, the #e notation works on strings. The reader turns "0.3" by default into 5404319552844595/18014398509481984, the closest floating-point 64-bit binary number to 0.3. I did exactly the trick of appending "#e" to the front of numerical strings for a homework-on-the-web system that I wrote when the students expected to use exact decimal arithmetic. See: 0.
(= .3 3/10) #f
Brad