Today I will bring you an in-depth analysis of the formatting use of the printf() function in PHP. The editor thinks it’s pretty good, so I’ll share it with you now and give it as a reference. Let’s follow the editor to have a look, I hope it will be helpful to everyone.
The advantage of the printf() function is that it can format the output!
The complete format controlled by the format of printf:
% - 0 m.n l or h format character
The items that make up the format description are explained below:
①%: represents the starting symbol of the format description, which is indispensable.
②-: If - indicates left-aligned output, if omitted, it indicates right-aligned output.
③0: If there is 0, it means that the specified blank is filled with 0. If it is omitted, it means that the specified blank is not filled.
④m.n: m refers to the field width, that is, the number of characters occupied by the corresponding output item on the output device. N refers to accuracy. The number of decimal places used to describe the output real number. When n is specified, the implicit precision is n=6 digits.
⑤l or h:l refers to long type for integer type and double type for real type. h is used to correct the format character of integer type to short type.
————————————————————————————————————————————————————————————
Format characters
#Format characters are used to specify the data type and output format of the output item.
①d format: used to output decimal integers. There are several usages:
%d: Output according to the actual length of integer data.
%md: m is the width of the specified output field. If the number of data digits is less than m, spaces will be added to the left end. If it is greater than m, the actual number of digits will be output.
%ld: Output long integer data.
②o format: Output the integer in unsigned octal form. Long integers can be output in "%lo" format. You can also specify the field width to output in "%mo" format.
Example:
main() { int a = -1; printf("%d, %o", a, a); }
Run result: -1,177777
Program analysis: -1 in the memory unit (stored in complement form) is (1111111111111111)2, Converted to octal number is (177777)8.
③x format: Output the integer in unsigned hexadecimal form. Long integers can be output in "%lx" format. You can also specify the field width to output in "%mx" format.
④u format: Output the integer in unsigned decimal form. Long integers can be output in "%lu" format. You can also specify the field width to output in "%mu" format.
⑤c format: Output one character.
⑥s format: used to output a string. There are several usages
%s: For example: printf("%s", "CHINA") outputs the "CHINA" string (excluding double quotes).
%ms: The output string occupies m columns. If the length of the string itself is greater than m, the limit of m will be exceeded and all strings will be output. If the string length is less than m, spaces are left padded.
%-ms: If the string length is less than m, within the range of m columns, the string is moved to the left and spaces are padded to the right.
%m.ns: The output occupies m columns, but only takes the n characters from the left end of the string. These n characters are output on the right side of column m, padded with spaces on the left.
%-m.ns: where m and n have the same meaning as above, n characters are output on the left side of the m column range, and spaces are padded on the right. If n>m, the n value is automatically taken, that is, n characters are guaranteed to be output normally.
⑦f format: used to output real numbers (including single and double precision) in decimal form. There are several usages:
%f: No width is specified, all integer parts are output and 6 decimal places are output.
%m.nf: The output occupies a total of m columns, including n decimal places. If the width of the value is less than m, add spaces at the left end.
%-m.nf: The output occupies a total of n columns, including n decimal places. If the value width is less than m, pad the right end with spaces.
⑧e format: Output real numbers in exponential form. The following forms are available:
%e: The numeric part (also called the mantissa) outputs 6 decimal digits, and the exponent part occupies 5 or 4 digits.
%m.ne and %-m.ne: The meanings of m, n and "-" characters are the same as before. Here n refers to the number of decimal places in the digital part of the data, and m represents the width of the entire output data.
⑨g format: Automatically select the shorter one of f format or e format for output, and do not output meaningless zeros.
——————————————————————————————————————————————————————————————
About printf Further explanation of the function:
If you want to output the character "%", you should use two consecutive % in the "format control" string, such as:
printf("%f% %", 1.0/3);
Output 0.333333%.
——————————————————————————————————————————————————————————————
For single When the precision number is output using the %f format character, only the first 7 digits are significant digits and the decimal place is 6.
For double precision numbers, when output using the %lf format character, the first 16 digits are valid digits and there are 6 decimal digits.
Related recommendations:
What are the differences between the three functions var_dump, var_export and print_r in php
The above is the detailed content of Detailed explanation of printf() function formatting in PHP. For more information, please follow other related articles on the PHP Chinese website!