|
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)
|
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