וואָס ס די פונט פון אַ ברייט קלענערער ווי אַ פּינטלעכקייַט אין פּרינטף ()?

איך געקומען אַריבער עטלעכע קאָד מיט אַ שורה קוקן ווי:

fprintf(fd, "%4.8f", ptr->myFlt);

ניט ארבעטן מיט C ++ פיל די טעג איך לייענען די דאָק אויף פּרינטף און זיין ענלעך, און געלערנט אַז אין דעם פאַל 4 איז די "ברייט", און 8 איז דער "פּינטלעכקייט". די ברייט איז געווען דיפיינד ווי די מינימום נומער פון ספּייסאַז פאַרנומען דורך דער רעזולטאַט, וואַטן מיט לידינג בלאַנקס אויב עס דאַרף זיין.

אין דעם פאַל, איך קען נישט פֿאַרשטיין וואָס די פונט פון אַ מוסטער ווי "% 4.8f "וואָלט זיין, זינט די 8 (נול-פּאַדיד אויב נייטיק) דעצימאַל נאָך די פונט וואָלט שוין ענשור אַז די ברייט פון 4 איז געווען באגעגנט און יקסידיד. אַזוי, איך געשריבן אַ ביסל פּראָגראַם אין Visual C ++:

// Formatting width test

#include "stdafx.h"

int _tmain(int argc, _TCHAR* argv[])
{
    printf("Need width when decimals are smaller: >%4.1f<\n", 3.4567);
    printf("Seems unnecessary when decimals are greater: >%4.8f<\n", 3.4567);
    printf("Doesn't matter if argument has no decimal places: >%4.8f<\n", (float)3);

    return 0;
}

וואָס גיט די פאלגענדע רעזולטאַט:

Need width when decimals are smaller: > 3.5<
Seems unnecessary when decimals are greater: >3.45670000<
Doesn't matter if argument has no decimal places: >3.00000000<

אין דער ערשטער פאַל, די פּינטלעכקייַט איז ווייניקער ווי די ברייט ספּעסאַפייד, און אין פאַקט אַ לידינג פּלאַץ איז צוגעגעבן. ווען די פּינטלעכקייט איז גרעסער, אָבער, די ברייט מיינט יבעריק.

איז עס אַ סיבה פֿאַר אַזאַ פֿאָרמאַט?

7
задан Puppy 13 July 2011 в 15:33
поделиться