Ik wil een float-waarde afdrukken met 2 gehele cijfers en 6 decimale cijfers na de komma. Als ik gewoon printf("%f", myFloat)
gebruik, krijg ik een afgekapte waarde.
Ik weet niet of dit altijd gebeurt in C, of het is gewoon omdat ik C gebruik voor microcontrollers (CCS om precies te zijn), maar bij de referentie staat dat %f
get alleen dat: een afgeknotte float.
Als mijn float 44.556677
is, druk ik "44.55"
af, alleen de eerste twee decimale cijfers.
Dus de vraag is… hoe kan ik mijn 6 cijfers afdrukken (en alleen de zes, voor het geval ik daarna nullen krijg of zoiets)?
Antwoord 1, autoriteit 100%
Je kunt het als volgt doen:
printf("%.6f", myFloat);
6 staat voor het aantal cijfers na het decimaalteken.
Antwoord 2, autoriteit 15%
printf("%9.6f", myFloat)
specificeert een indeling met in totaal 9 tekens: 2 cijfers voor de punt, de punt zelf en zes cijfers na de punt.
Antwoord 3, autoriteit 4%
printf("%0k.yf" float_variable_name)
Hier is k
het totale aantal tekens dat u wilt laten afdrukken. k = x + 1 + y
(+ 1
voor de punt) en float_variable_name
is de float-variabele die u wilt laten afdrukken.
Stel dat u x cijfers vóór de komma en y cijfers erna wilt afdrukken. Als het aantal cijfers voor float_variable_name kleiner is dan x, dan zal het automatisch zoveel nullen ervoor zetten.
Antwoord 4, autoriteit 4%
printf("%.<number>f", myFloat) //where <number> - digit after comma
http://www.cplusplus.com/reference/clibrary/cstdio/ printf/
Antwoord 5
Gebruik %.6f
.
Hiermee worden 6 decimalen afgedrukt.
Antwoord 6
Probeer deze om het probleem van de juiste uitlijning bij het afdrukken met zwevende punten te verduidelijken
printf(" 4|%4.1lf\n", 8.9);
printf("04|%04.1lf\n", 8.9);
de uitvoer is
4| 8.9
04|08.9
Antwoord 7
U moet %2.6f
gebruiken in plaats van %f
in uw printf-statement