C: printf een float-waarde

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 %fget alleen dat: een afgeknotte float.

Als mijn float 44.556677is, 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 khet totale aantal tekens dat u wilt laten afdrukken. k = x + 1 + y(+ 1voor de punt) en float_variable_nameis 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.6fgebruiken in plaats van %fin uw printf-statement

Other episodes