2014-09-26 11 views
6

Come si ottiene uno printf %6.2f nello schema o nella racchetta, come si farebbe in C?printf% 6.2f in schema o racchetta?

In questo momento tutto ciò che ho è printf "The area of the disk is ~s\n" (- d1 d2), ma non riesco a formattare l'output in un formato a virgola mobile specifico.

Grazie

risposta

4

Per ottenere un comportamento più vicino alla funzione di C printf() utilizzare la procedura format fornito da SRFI-48, in questo modo:

(require srfi/48) 
(format "The area of the disk is ~6,2F~%" (- d1 d2)) 

Un'alternativa più prolisso sarebbe quella di utilizzare Racket di built-in ~r procedura , come suggerito da @stchang:

(string-append 
"The area of the disk is " 
(~r (- d1 d2) #:min-width 6 #:precision '(= 2)) 
"\n") 
+1

E in [tag: Scheme] è sufficiente includere '(srfi: 48)' tra le importazioni anziché il modulo 'require'. – Sylwester

+1

Forse dovrei iniziare una domanda a parte, ma come è "srfi/48" un buon nome? In altre lingue è necessario "testo" o "formattazione". –

4

La racchetta ha ~r.

Probabilmente vorrai fornire gli argomenti #:min-width e #:precision.