[Top][All Lists]
[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
- [Chicken-hackers] Bug in number->string,
Peter Danenberg <=