[cmucl-ticket] [cmucl] #1: prin1 and ~E produce different outputs.

cmucl cmucl-devel at common-lisp.net
Fri Apr 28 16:57:45 UTC 2006


#1: prin1 and ~E produce different outputs.
------------------------+---------------------------------------------------
 Reporter:  anonymous   |       Owner:  somebody
     Type:  defect      |      Status:  new     
 Priority:  minor       |   Milestone:          
Component:  component1  |     Version:          
 Keywords:  printing    |  
------------------------+---------------------------------------------------
 (let ((x (random 1d-3)))
   (values (prin1-to-string x) (format nil "~E" x)))

 will produce different significant digits.  I think the problem is in ~E
 which calls lisp::scale-exponent to scale the number between 0.1 and 1.  I
 think we could just call flonum-to-digits which will give us the digits
 and the exponent.  We can massage that into the desired digits and
 exponent as in scale-exponent, but we won't have the round-off problem.

 Maybe.

-- 
Ticket URL: <http://trac.common-lisp.net/cmucl/ticket/1>
cmucl <http://common-lisp.net/project/cmucl>
cmucl


More information about the cmucl-ticket mailing list