[prev in list] [next in list] [prev in thread] [next in thread]
List: racket-users
Subject: [plt-scheme] Printing
From: jmarshall () alum ! mit ! edu (Joe Marshall)
Date: 2005-10-15 20:03:39
Message-ID: c948168d0510151303p200a6810o33675d1ebc29f6d1 () mail ! gmail ! com
[Download RAW message or body]
As it happens, I wanted to do this last week.
Here is my solution:
(define (format-float float digits)
(let* ((numerals (number->string (round (* (inexact->exact float)
(expt 10 digits)))))
(length (string-length numerals))
(dot (- length digits)))
(string-append
(if (< dot 0) "0" (substring numerals 0 dot))
"."
(if (< dot 0)
(string-append (make-string (- dot) #\0) numerals)
(substring numerals dot length)))))
On 10/15/05, Chongkai Zhu <mathematica at citiz.net> wrote:
> You could also try SRFI-48. I have already port it into
> PLT Scheme. The code is now available from Schematics CVS.
> One reason it is not in PLT now is that when doing the
> port, I find several bugs in the reference implementation.
> Although these bugs are fixed now, maybe there will be other
> bugs. Should I insert the existin code into PLT?
>
> Chongkai
>
> > This is a really simple question, but I can't find the answer anywhere \
> > (help-desk, google, etc.). How do you control, how many decimal places get \
> > printed with a floating pointer number.
> > For example I want somthing like:
> >
> > (define PI 3.1479)
> >
> > (printf "~1.2a\n" PI) => 3.14
> >
> > or
> >
> > (printf "~a\n" (decimal-places PI 2)) => 3.14
> >
> >
> > Thanks,
> >
> > Evan
> >
>
>
>
> _________________________________________________
> For list-related administrative tasks:
> http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>
--
~jrm
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic