sprintf() 函数

将字串格式化命令。sprintf 是个变参函数,使用时经常出问题,而且只要出问题通常就是能导致程序崩溃的内存访 问错误,但好在由sprintf 误用导致的问题虽然严重,却很容易找出,无非就是那么几种情况,通 常用眼睛再把出错的代码多看几眼就看出来了。

参数说明及应用举例

sprintf格式的规格如下所示。[]中的部分是可选的。  

%[指定参数][标识符][宽度][.精度]指示符  若想输出`%'本身时, 请这样`%%'处理。  

1. 处理字符方向。负号时表示从后向前处理。   

2. 填空字元。 0 的话表示空格填 0;空格是内定值,表示空格就放着。   

3. 字符总宽度。为最小宽度。   

4. 精确度。指在小数点后的浮点数位数。


转换字符

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

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

%d 整数转成十进位。   

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

%o 整数转成八进位。   

%s 整数转成字符串。   

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

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


<?  

$money = 123.1  

$formatted = sprintf ("%06.2f", $money); // 此时变数 $ formatted 值为 "123.10"  

$formatted = sprintf ("%08.2f", $money); // 此时变数 $ formatted 值为 "00123.10"  

$formatted = sprintf ("%-08.2f", $money); // 此时变数

$ formatted 值为 "123.1000"  

$formatted = sprintf ("%.2f%%", 0.95 * 100); // 格式化为百分比  

?>   

¢%08.2f 解释:  

%开始符  

0是 "填空字元" 表示,如果长度不足时就用0来填满。  

8格式化后总长度  

2f小数位长度,即2位  

¢第3行值为"00123.10" 解释:  因为2f是(2位)+小数点符号(1)+前面123(3位)=6位,总长度为8位,故前面用[填空字元]0表示,即00123.10  

¢第4行值为"123.1000" 解释:  

-号为反向操作,然后填空字元0添加在最后面了












  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值