作为程序员一定要保持良好的睡眠,才能好编程

格式化字符串数字printf和sprintf

发布时间:2016-10-28

       printf("%s","13g2sadf");
    echo "<br>";
     //直接输出 
    printf("%d","17,999");
    echo "<br>";
    printf("%.02lf\n", 1.035);
    printf("%.03lf\n", 1.0359);
    echo "<br>";
    printf("$%.2f", 143.2);
    echo "<br>";
    
    
    //把格式化的结果,存放在$res 中
   
    $res=sprintf("%-01.2f",1433);
    echo $res;


printf 与 sprintf 两个函数最大的不同就是  sprintf 是将格式化后的结果返回的


printf 直接打印出来




=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


转换字符


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

% 印出百分比符号,不转换。 


b 整数转成二进位。 


c 整数转成对应的 ASCII 字元。 


d 整数转成十进位。 


f 倍精确度数字转成浮点数。 


o 整数转成八进位。 


s 整数转成字串。 


x 整数转成小写十六进位。 


X 整数转成大写十六进位。 


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-



再次说明下:



$header .= sprintf('%08x', 0); //reserved

解释:把第二个参数解析成十六进制的字符,如果位数不足,则使用0 补足。

echo sprintf('%08x', 11123123);

结果:00a9b9b3

怎么变化都不会超过我们指定的位数 8位



这是什么意思?



%s:字符串

%d %i:数字 整形

%f:浮点

%u:十进制值

%c:单个字符


//字符、

\n:换行

\r:回车

\f:清屏并换页

\t:Tab换行符号

\xhh:表示一个ASCCII码用16进制来表示

 


//直接输出
printf("%d",144);

//保存在变量$res中
$res=printf("%d",144);
echo $res;

680386016241401518.jpg