# String format does not work

**URL:** <https://racket.discourse.group/t/string-format-does-not-work/3871>\
**Category:** Questions & Answers\
**Tags:** question\
**Created:** [July 25, 2025, 10:08am UTC](https://racket.discourse.group/t/string-format-does-not-work/3871 "2025-07-25T10:08:59Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![lylgithub2021](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/lylgithub2021/32/2392_2.png) [@lylgithub2021](https://racket.discourse.group/u/lylgithub2021)\
**Post date:** [July 25, 2025, 10:08am UTC](https://racket.discourse.group/t/string-format-does-not-work/3871/1 "2025-07-25T10:08:59Z")

</div>

#lang racket  
(printf "width1: |~6d|~6d|\n" 12 345)

Why dose it cause error message " printf: ill-formed pattern string  
explanation: tag `~6` not allowed; arguments were: 12 345"?

Ps: on Drracket v8.17

---

<div class="post-metadata">

**Author:** ![EmEf](https://avatars.discourse-cdn.com/v4/letter/e/53a042/32.png) [@EmEf](https://racket.discourse.group/u/EmEf)\
**Post date:** [July 25, 2025, 10:45am UTC](https://racket.discourse.group/t/string-format-does-not-work/3871/2 "2025-07-25T10:45:33Z")

</div>

~ is a directive, followed by a letter:

[

| 

[13.5 Writing](https://docs.racket-lang.org/reference/Writing.html#%28def._%28%28quote._~23~25kernel%29._fprintf%29%29)  
[docs.racket-lang.org](https://docs.racket-lang.org/reference/Writing.html#%28def._%28%28quote._~23~25kernel%29._fprintf%29%29)

 | 

[![](data:image/png;base64,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)](https://docs.racket-lang.org/reference/Writing.html#%28def._%28%28quote._~23~25kernel%29._fprintf%29%29)

 |

](https://docs.racket-lang.org/reference/Writing.html#%28def.\_%28%28quote.\_~23~25kernel%29.\_fprintf%29%29)

If you want a tilde, use `~~`.

---

<div class="post-metadata">

**Author:** ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)\
**Post date:** [July 25, 2025, 12:07pm UTC](https://racket.discourse.group/t/string-format-does-not-work/3871/3 "2025-07-25T12:07:06Z")

</div>

Hi & welcome!

Are you trying to format the numbers to 6 digits?

Perhaps you were after something like this:

```scheme
#lang racket
(define a (~r 12 #:min-width 6))
(define b (~r 345 #:min-width 6))
(printf "width1: ~a~a\n" a b)

```

which prints

```scheme
width1: 12 345

```

`~r` is documented in [4.4&nbsp;Strings](https://docs.racket-lang.org/reference/strings.html#%28def._%28%28lib._racket%2Fformat..rkt%29._~7er%29%29)

---

<div class="post-metadata">

**Author:** ![lylgithub2021](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/lylgithub2021/32/2392_2.png) [@lylgithub2021](https://racket.discourse.group/u/lylgithub2021)\
**Post date:** [July 25, 2025, 3:08pm UTC](https://racket.discourse.group/t/string-format-does-not-work/3871/4 "2025-07-25T15:08:46Z")

</div>

Many thanks!

---

<div class="post-metadata">

**Author:** ![shawnw](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/shawnw/32/1031_2.png) [@shawnw](https://racket.discourse.group/u/shawnw)\
**Post date:** [July 25, 2025, 8:47pm UTC](https://racket.discourse.group/t/string-format-does-not-work/3871/5 "2025-07-25T20:47:16Z")

</div>

There are alternative `format` implementations available that do support widths and other features not in the bare-bones one built in to Racket.

[SRFI-48 Intermediate Format Strings](https://srfi.schemers.org/srfi-48/srfi-48.html) (Comes bundled with racket):

```scheme
> (require srfi/48)
> (format #t "width1: |~6F|~6F|\n" 12 345) ; note F instead of d
width1: | 12| 345|

```

or my [slib-format](https://docs.racket-lang.org/slib-format/index.html):

```scheme
> (require slib/format)
> (printf "width1: |~6d|~6d|\n" 12 345)
width1: | 12| 345|

```

---

<div class="post-metadata">

**Author:** ![lylgithub2021](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/lylgithub2021/32/2392_2.png) [@lylgithub2021](https://racket.discourse.group/u/lylgithub2021)\
**Post date:** [July 26, 2025, 5:15am UTC](https://racket.discourse.group/t/string-format-does-not-work/3871/6 "2025-07-26T05:15:33Z")

</div>

> [@shawnw](#):
>
> ```scheme
> (require srfi/48)
> > (format #t "width1: |~6F|~6F|\n" 12 345)
> 
> ```

How can I know if the function 'format' comes from Racket or srfi/48?

---

<div class="post-metadata">

**Author:** ![shawnw](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/shawnw/32/1031_2.png) [@shawnw](https://racket.discourse.group/u/shawnw)\
**Post date:** [July 26, 2025, 9:29am UTC](https://racket.discourse.group/t/string-format-does-not-work/3871/7 "2025-07-26T09:29:52Z")

</div>

If you hover over the identifier in DrRacket it'll tell you which module provided it.

---

<div class="post-metadata">

**Author:** ![lylgithub2021](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/lylgithub2021/32/2392_2.png) [@lylgithub2021](https://racket.discourse.group/u/lylgithub2021)\
**Post date:** [July 27, 2025, 1:55pm UTC](https://racket.discourse.group/t/string-format-does-not-work/3871/8 "2025-07-27T13:55:50Z")

</div>

How to return to the function 'forrmat' of Racket in the following code?

---

<div class="post-metadata">

**Author:** ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)\
**Post date:** [July 27, 2025, 6:28pm UTC](https://racket.discourse.group/t/string-format-does-not-work/3871/9 "2025-07-27T18:28:48Z")

</div>

Hi,

You can use `prefix-in` when you want to rename an import so it doesn't overwrite and existing definition:

```scheme
> (require (prefix-in alt: srfi/48))
> (alt:format #t "width1: |~6F|~6F|\n" 12 345) 
width1: | 12| 345|
> (format "a:~a b:~a ~n" 12 345)
a:12 b:345

```

See [3.2&nbsp;Importing and Exporting: require and provide](https://docs.racket-lang.org/reference/require.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._prefix-in%29%29) for more details.

Rest regards,  
Stephen :beetle:

---

<div class="post-metadata">

**Author:** ![lylgithub2021](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/lylgithub2021/32/2392_2.png) [@lylgithub2021](https://racket.discourse.group/u/lylgithub2021)\
**Post date:** [July 29, 2025, 9:42am UTC](https://racket.discourse.group/t/string-format-does-not-work/3871/10 "2025-07-29T09:42:56Z")

</div>

Many thanks for these good info
