Bug in srfi-48? Donald Allen (11 Oct 2017 19:42 UTC)
Re: Bug in srfi-48? Arthur A. Gleckler (11 Oct 2017 19:46 UTC)
Re: Bug in srfi-48? Donald Allen (11 Oct 2017 20:36 UTC)
Re: Bug in srfi-48? Arthur A. Gleckler (11 Oct 2017 21:33 UTC)
Re: Bug in srfi-48? Donald Allen (12 Oct 2017 13:04 UTC)
Re: Bug in srfi-48? Arthur A. Gleckler (12 Oct 2017 19:07 UTC)
Re: Bug in srfi-48? Donald Allen (12 Oct 2017 19:42 UTC)
Re: Bug in srfi-48? Shiro Kawai (12 Oct 2017 20:40 UTC)
Re: Bug in srfi-48? Arthur A. Gleckler (12 Oct 2017 23:13 UTC)
Re: Bug in srfi-48? Donald Allen (13 Oct 2017 02:09 UTC)
Re: Bug in srfi-48? Donald Allen (13 Oct 2017 15:58 UTC)
Re: Bug in srfi-48? Donald Allen (13 Oct 2017 16:13 UTC)
Re: Bug in srfi-48? Marc Feeley (13 Oct 2017 17:50 UTC)
Re: Bug in srfi-48? Donald Allen (13 Oct 2017 17:52 UTC)
Re: Bug in srfi-48? Shiro Kawai (13 Oct 2017 19:54 UTC)
Re: Bug in srfi-48? John Cowan (13 Oct 2017 17:34 UTC)
Re: Bug in srfi-48? Donald Allen (13 Oct 2017 17:51 UTC)
Re: Bug in srfi-48? Alex Shinn (14 Oct 2017 13:03 UTC)
Re: Bug in srfi-48? Arthur A. Gleckler (14 Oct 2017 13:11 UTC)
Re: Bug in srfi-48? Arthur A. Gleckler (18 Oct 2017 18:20 UTC)
Re: Bug in srfi-48? Donald Allen (18 Oct 2017 19:11 UTC)

Re: Bug in srfi-48? Marc Feeley 13 Oct 2017 17:51 UTC

I’ve found this code works well for me…

(define (num->string num w d) ; w = total width, d = decimals
 (let ((n (round (* (abs (inexact->exact num)) (expt 10 d)))))
   (let ((i (quotient n (expt 10 d)))
         (f (modulo n (expt 10 d))))
     (let ((si (string-append
                 (if (< num 0) "-" "")
                 (number->string i 10)))
           (sf (if (> d 0)
                   (let ((sf (number->string (+ f (expt 10 d)) 10)))
                     (string-set! sf 0 #\.)
                     sf)
                   "")))
       (let ((lsi (string-length si))
             (lsf (string-length sf)))
         (let ((blanks (- w (+ lsi lsf))))
           (string-append (make-string (max blanks 0) #\space) si sf)))))))

Perhaps that’s better for your purpose than srfi-48.

Marc

> On Oct 13, 2017, at 12:13 PM, Donald Allen <xxxxxx@gmail.com> wrote:
>
> Here's another:
>
>> (load "srfi-48.scm")
> "/home/dca/Software/newcash/gLibraries/srfi-48/srfi-48.scm"
>> (format "~8,0F" -14.99995999999362)
> "    -13."
>> (round -14.99995999999362)
> -15.
>>
>
> The version of srfi-48.scm I am using has both of yesterday's patches
> installed. I saw the symptoms of the above before installing these
> patches, so I don't think they are the cause of this error.
>
> On 13 October 2017 at 11:58, Donald Allen <xxxxxx@gmail.com> wrote:
>> The patches offered thus far seem to have addressed the problems I
>> previously reported. But here's another:
>>
>> 1> (format "~7,2F" 18.0000000000008)
>> "  18.0."
>> 1>
>>
>> And I am seeing symptoms in my application that other numbers are not
>> being displayed correctly. I have not chased them down yet, but will
>> try to do so and report if I find anything.
>>
>> I must say that it's disconcerting to be finding all these problems in
>> code that was finalized in 2004. I think at the very least, a warning
>> should be posted in an appropriate place that issues have been found
>> with this srfi, efforts are being made to correct them, and until
>> further notice, its use may not produce correct results.
>>
>> /Don
>>
>> On 12 October 2017 at 22:09, Donald Allen <xxxxxx@gmail.com> wrote:
>>> On 12 October 2017 at 19:13, Arthur A. Gleckler <xxxxxx@speechcode.com> wrote:
>>>> On Thu, Oct 12, 2017 at 12:42 PM, Donald Allen <xxxxxx@gmail.com>
>>>> wrote:
>>>>
>>>>>
>>>>> Sorry, I wasn't clear. I was talking about this:
>>>>
>>>>
>>>> I apologize.  That should have been obvious to me.  I've been trying to do
>>>> too many things at once over the past few days.
>>>>
>>>> Would you mind trying Shiro Kawai's patch?
>>>
>>> I applied both yours and Shiro Kawai"s patches:
>>>
>>> 1>  (format "~a & ~7,2F\\%\\\\\n" "Framingham Mass Muni Purpose Loan"
>>> 1.997554209949891)
>>> "Framingham Mass Muni Purpose Loan &    2.00\\%\\\\\n"
>>> 1>  (format "~a & ~7,2F\\%\\\\\n" "Framingham Mass Muni Purpose Loan"
>>> .997554209949891)
>>> "Framingham Mass Muni Purpose Loan &    1.00\\%\\\\\n"
>>> 1> (format "~7,2F" .997554209949891)
>>> "   1.00"
>>> 1> (format "~7,2F" .99755420)
>>> "   1.00"
>>> 1> (format "~7,2F" .99755)
>>> "   1.00"
>>> 1> (format "~7,2F" .997)
>>> "   1.00"
>>> 1> (format "~7,2F" .99)
>>> "    .99"
>>> 1>
>>>
>>> Looks good. Thanks very much.
>>>
>>> /Don
>>>
>>>>
>>>> (Thank you, Mr. Kawai.)

Marc