robert@nereid.jpl.nasa.gov (Robert Angelino) (04/06/91)
background: I'm running SunOS 4.1 on a SPARC using the Sun
C compiler.
I'm doing something like so:
printf("%02.3f\n",1.1324);
and I'm getting this:
1.132
I want something like
01.132
The book "C A Reference Manual" by Steele & Harbison say that the
following should work:
printf("%02.3f\n",1.1324); OR
printf("%#02.3f\n",1.1324); OR
printf("%02.3g\n",1.1324); OR
printf("%#02.3g\n",1.1324);
Now, I've tried all of these (including the "hammer") and nothing seems
to work. If the book says it should work then the compiler is not doing
it's job correctly. Does anyone know how to get around this using this
compiler???
Please e-mail directly.
thanks in advance
--
- ------ - Robert Angelino
| | | ---- \ | | ms T-1704L
| | | | \ | | | 4800 Oak Grove Drive
| | | | -- | | | Pasadena, CA 91109
---| | | | \__/ | |___ robert@triton.jpl.nasa.gov
\____|et |_|ropulsion |_____\aboratory (818) 354-9574harry@dustbin.uk.sun.com (Harry Protoolis - Sun EHQ) (04/06/91)
In article <6158@mahendo.Jpl.Nasa.Gov>, robert@nereid.jpl.nasa.gov (Robert Angelino) writes: |> background: I'm running SunOS 4.1 on a SPARC using the Sun |> C compiler. |> |> I'm doing something like so: |> |> printf("%02.3f\n",1.1324); |> |> and I'm getting this: |> |> 1.132 Try printf("%06.3f\n", 1.1324); The first part of the size specifier is a *field width*, so you need to allow for the whole output string (ie 2 (digits left of d.p) + 1 (decimal point) + 3 (digits right of d.p) = 6). Hope this helps, Harry -- (smart Internet mailers) harry.protoolis@uk.sun.com (smart JANET mailers) harry.protoolis@sun-microsystems.co.uk (dumb uucp mailers) ...!sun!sunuk!harry.protoolis 'When I give food to the poor they call me a saint. When I ask why the poor have no food they call me a communist.' - Dom Helder Camara