Awk printf problem

Hi,

I've got a basic problem using printf statement in awk.
I want to write float values with always 8 characters width.
Examples :
1.345678
12.45678
123.4567
1234.678
-23.5678
-2.45678
-23456.8
.....

I cannot find the right printf format %8.1f, %7.5f....
Can anyone help ?
Thanks.

printf "%8.8s\n"

Thanks for the answer.
The problem with this solution is that it does not round the float value, it truncates it.

awk -F. '
 {
  declen = 7 - length($1)
#  printf "%s\t", $0  ## for comparison
  printf "%8." declen "f\n", $0
 }
'

Thank you very very much !
It did the trick.