[实践用到]PHP的sprintf()函数用法,精减小数点后的位数,小数点保留多少位数的方法。

jackxiang 2012-3-23 17:07 | |
新注意问题,将sprintf这个写在foreach时拼接URl时,要注意,不能直接写成:
1.sprintf错误赋值的写法(不能修改下面这个$getURlStr),如下:


2.而应该写成,如下,sprintf的值应该重新赋值给一个新的变量:


------------------------------------------------------------
接着讲:PHP的sprintf()函数用法

主要是对:在 0 后面的是 1 这个 1 是规定,小数点前面的数字占位要有1位以上。
例子,使用范例


这个 %01.2f 是什么意思呢?
首先 这个 % 符号是开始的意思,他写在最前面表示指定格式要开始了。 也就是 "起始字符", 直到出现 "转换字符" 为止,就算格式终止。
主要是想了解这一句:

如果把 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 "转换字符" 结尾,其他转换字符请自行参考上面的转换字符列表。

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

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



sprintf
将字串格式化。
语法: string sprintf(string format, mixed [args]...);
传回值: 字串
函式种类: 资料处理
内容说明
本函式用来将字串格式化。参数 format 是转换的格式,以百分比符号 % 开始到转换字符为止。而在转换的格式间依序包括了
1. 填空字元。0 的话表示空格填 0;空格是内定值,表示空格就放着。
2. 对齐方式。内定值为向右对齐,负号表向左对齐。
3. 栏位宽度。为最小宽度。
4. 精确度。指在小数点后的浮点数位数。
型态,见下表
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
转换字符
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
% 印出百分比符号,不转换。
b 整数转成二进位。
c 整数转成对应的 ASCII 字元。
d 整数转成十进位。
f 倍精确度数字转成浮点数。
o 整数转成八进位。
s 整数转成字串。
x 整数转成小写十六进位。
X 整数转成大写十六进位。
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

来自:http://www.bhcode.net/article/20100114/6780.html

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/5078/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2012-5-24 16:19
评论列表
2012-3-25 11:55 | hxngb5ff Email Homepage
谢谢楼主,好久没看到这么好的贴了
分页: 1/1 第一页 1 最后页
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]