Ik wil een double waarde printen met de functie fprintf. Ik gebruik hier de %02.5f voor. Hiermee dacht ik te bereiken dat de voorbeeld waarde 2.03 als 02.03000 geprint zou worden.
Even wat minimale code:
Wie of wat zie ik over het hoofd? Mag de width niet opgeven worden bij floats?
http://www.cplusplus.com/reference/clibrary/cstdio/printf/ zegt er niets over?
Het C Handboek zegt het volgende:
"double; decimale notatie van de vorm [-]m.dddddd, waarbij het aantal d's is gegeven door de precisie. De precisie is bij verstek (default) 6; met een precisi van 0 wordt de decimaalpunt niet afgedrukt" (bladzijde 332).
Dit komt er op neer dat wat ik wil niet gaat lukken?
Even wat minimale code:
C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| #include <stdio.h> int main(void) { fprintf(stdout, "%02.5f\n", 2.0103); fprintf(stdout, "%02.5d\n", 2); return 0; /* OUTPUT: 2.01030 02 */ /* GEWENSTE OUTPUT: 02.01030 02 */ } |
Wie of wat zie ik over het hoofd? Mag de width niet opgeven worden bij floats?
http://www.cplusplus.com/reference/clibrary/cstdio/printf/ zegt er niets over?
Het C Handboek zegt het volgende:
"double; decimale notatie van de vorm [-]m.dddddd, waarbij het aantal d's is gegeven door de precisie. De precisie is bij verstek (default) 6; met een precisi van 0 wordt de decimaalpunt niet afgedrukt" (bladzijde 332).
Dit komt er op neer dat wat ik wil niet gaat lukken?
[ Voor 41% gewijzigd door Gehakt op 11-12-2009 11:52 ]