php中的sprintf的应用

sprintf

将字串格式化。

语法: string sprintf(string format, mixed [args]…);

传回值: 字串

函式种类: 资料处理

内容说明

本函式用来将字串格式化。参数 format 是转换的格式,以百分比符号 %
开始到转换字符为止。而在转换的格式间依序包括了

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

  2. 对齐方式。内定值为向右对齐,负号表向左对齐。

  3. 栏位宽度。为最小宽度。

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

型态,见下表

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-转换字符=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-%
印出百分比符号,不转换。 b 整数转成二进位。 c 整数转成对应的 ASCII
字元。 d 整数转成十进位。 f 倍精确度数字转成浮点数。 o 整数转成八进位。
s 整数转成字串。 x 整数转成小写十六进位。 X 整数转成大写十六进位。

澳门新葡亰网站注册,例子

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

使用范例

?$money1 = 68.75;$money2 = 54.35;$money = $money1 + $money2;// 此时变数
$money 值为 123.1;$formatted = sprintf (%01.2f, $money);// 此时变数 $
formatted 值为 123.10?

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

这个 %01.2f 是什么意思呢?

首先 这个 % 符号是开始的意思,他写在最前面表示指定格式要开始了。 也就是
起始字符, 直到出现 转换字符 为止,就算格式终止。

然后 跟在 % 符号 后面的是 0 这个零是 填空字元 表示,如果位置空着
就用0来填满。在 0 后面的是 1 这个 1
是规定,小数点前面的数字占位要有1位以上。

如果把 1 改成 2 如果 $money 的值为 1.23 ,则 $formatted 的值将为
01.23因为,在小数点前面的数字只占了1位,按照上面所规定的格式,小数点前数字应该占2位,现在只有1位,所以,用0来填满。

到目前,在 %01 后面的 .2 (点2)
就很好理解了,它的意思是,规定,小数点后的数字,必需占2位. 如果这时候,$money
的值为 1.234,则 $formatted 的值将为 1.23。为什么 4 不见了呢?
因为,在小数点后面 按照上面的规定,必需且仅能占2位。 可是 $money
的值中,小数点占了3位,所以,4 被去掉了,只剩下 23。

最后,以 f 转换字符 结尾,其他转换字符请自行参考上面的转换字符列表。

关于对齐

如果在 % 起始符号后面 加上 – (负号)
则,将会把数字以向右对齐的方式进行处理。

列子

?$money = 1.4;

$formatted = sprintf (%-02.2f, $money);

echo $formatted;?

这时候,$formatted 将不会再是 01.40 而是 1.400

<