chicken-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Chicken-hackers] Bug in number->string


From: Peter Danenberg
Subject: [Chicken-hackers] Bug in number->string
Date: Sat, 16 Jan 2010 07:03:00 -0600
User-agent: Mutt/1.5.16 (2007-06-11)

There's appears to be a bug in the way number->string handles
negatives in binary, octal and hexadecimal mode; for instance:

  (string->number (number->string -1 2) 2) => 1.84467440737096e+19

According to r5rs 6.2.6[1], the following should hold true:

  (let ((number number)
        (radix radix))
    (eqv? number
          (string->number (number->string number
                                          radix)
                          radix)))

however:

  (eqv? -1 (string->number (number->string -1 2) 2)) => #f
  (eqv? -1 (string->number (number->string -1 8) 8)) => #f
  (eqv? -1 (string->number (number->string -1 10) 10)) => #t
  (eqv? -1 (string->number (number->string -1 16) 16)) => #f

Footnotes: 
[1]  http://schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-9.html#%_idx_350





reply via email to

[Prev in Thread] Current Thread [Next in Thread]