<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post/5078/</link>
<title><![CDATA[[实践用到]PHP的sprintf()函数用法，精减小数点后的位数，小数点保留多少位数的方法。]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Fri, 23 Mar 2012 09:07:01 +0000</pubDate> 
<guid>http://jackxiang.com/post/5078/</guid> 
<description>
<![CDATA[ 
	新注意问题，将sprintf这个写在foreach时拼接URl时，要注意，不能直接写成：<br/>1.sprintf错误赋值的写法（不能修改下面这个$getURlStr），如下：<br/><textarea name="code" class="php" rows="15" cols="100">
//Url页面访问地址：内外网自动切换
$host = isset($_SERVER[&#039;HTTP_X_FORWARDED_HOST&#039;]) ? $_SERVER[&#039;HTTP_X_FORWARDED_HOST&#039;] : (isset($_SERVER[&#039;HTTP_HOST&#039;]) ? $_SERVER[&#039;HTTP_HOST&#039;] : &#039;&#039;);
if($host == &#039;test.webdev.com&#039;)
&#123;
&nbsp;&nbsp;&nbsp;&nbsp;$getURlStr = &quot;test.jackxiang.com?id=%s&amp;starttime=%s&amp;tmp=tst_warning_developer_to_deploy&quot;;
&#125;else
&#123;
&nbsp;&nbsp;&nbsp;&nbsp;$getURlStr = &quot;jackxiang.com?id=%s&amp;starttime=%s&amp;tmp=tst_warning_developer_to_deploy&quot;;
&#125;
foreach($tstplaininfo as $v)
&#123;
&nbsp;&nbsp;$getURlStr = sprintf($getURlStr,$id,$starttime);// 这样的结果是在foreach中重新对这个$getURlStr进行赋值时，把$getURlStr中的%s给替换了，再sprintf时也就还是上一次给替换的值，因$getURlStr里在第一次时替换后没有%s这样的了。
&nbsp;&nbsp;$content = my_file_gets_contents($getURlStr)
&#125;
</textarea><br/><br/>2.而应该写成，如下，sprintf的值应该重新赋值给一个新的变量：<br/><textarea name="code" class="php" rows="15" cols="100">
$getURlStr2 = sprintf($getURlStr,$id,$starttime);
$content = my_file_gets_contents($getURlStr2);
</textarea><br/><br/>------------------------------------------------------------<br/>接着讲：PHP的sprintf()函数用法<br/><br/>主要是对：在 0 后面的是 1 这个 1 是规定,小数点前面的数字占位要有1位以上。<br/>例子,使用范例<br/><textarea name="code" class="php" rows="15" cols="100">
&lt;?
$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// 此时变数 $money 值为 &quot;123.1&quot;;
$formatted = sprintf (&quot;%01.2f&quot;, $money);
// 此时变数 $ formatted 值为 &quot;123.10&quot;
?&gt;
</textarea><br/><br/>这个 %01.2f 是什么意思呢？<br/>首先 这个 % 符号是开始的意思,他写在最前面表示指定格式要开始了。 也就是 &quot;起始字符&quot;, 直到出现 &quot;转换字符&quot; 为止,就算格式终止。<br/>主要是想了解这一句：<br/><textarea name="code" class="php" rows="15" cols="100">
然后 跟在 % 符号 后面的是 0 这个零是 &quot;填空字元&quot; 表示,如果位置空着 就用0来填满。在 0 后面的是 1 这个 1 是规定,小数点前面的数字占位要有1位以上。
</textarea><br/>如果把 1 改成 2 如果 $money 的值为 1.23 ,则 $formatted 的值将为 01.23<br/>因为,在小数点前面的数字只占了1位,按照上面所规定的格式,小数点前数字应该占2位,现在只有1位,所以,用0来填满。<br/>到目前,在 %01 后面的 .2 (点2) 就很好理解了,它的意思是,规定,小数点后的数字,必需占2位. 如果这时候,$money 的值为 1.234,则 $formatted 的值将为 1.23。<br/>为什么 4 不见了呢? 因为,在小数点后面 按照上面的规定,必需且仅能占2位。 可是 $money 的值中,小数点占了3位,所以,4 被去掉了,只剩下 23。<br/>最后,以 f &quot;转换字符&quot; 结尾,其他转换字符请自行参考上面的转换字符列表。<br/><br/>关于对齐<br/>如果在 % 起始符号后面 加上 - (负号) 则,将会把数字以向右对齐的方式进行处理。<br/><textarea name="code" class="html" rows="15" cols="100">
&lt;?
$money = 1.4;
$formatted = sprintf (&quot;%-02.2f&quot;, $money);
echo $formatted;
?&gt;
</textarea><br/>这时候,$formatted 将不会再是 01.40 而是 1.400<br/><br/><br/><br/>sprintf<br/>将字串格式化。<br/>语法: string sprintf(string format, mixed [args]...);<br/>传回值: 字串<br/>函式种类: 资料处理<br/>内容说明<br/>本函式用来将字串格式化。参数 format 是转换的格式，以百分比符号 % 开始到转换字符为止。而在转换的格式间依序包括了<br/>1. 填空字元。0 的话表示空格填 0；空格是内定值，表示空格就放着。<br/>2. 对齐方式。内定值为向右对齐，负号表向左对齐。<br/>3. 栏位宽度。为最小宽度。<br/>4. 精确度。指在小数点后的浮点数位数。<br/>型态，见下表<br/>=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-<br/>转换字符<br/>=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-<br/>% 印出百分比符号，不转换。 <br/>b 整数转成二进位。 <br/>c 整数转成对应的 ASCII 字元。 <br/>d 整数转成十进位。 <br/>f 倍精确度数字转成浮点数。 <br/>o 整数转成八进位。 <br/>s 整数转成字串。 <br/>x 整数转成小写十六进位。 <br/>X 整数转成大写十六进位。 <br/>=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-<br/><br/>来自：http://www.bhcode.net/article/20100114/6780.html
]]>
</description>
</item><item>
<link>http://jackxiang.com/post/5078/#blogcomment63685</link>
<title><![CDATA[[评论] [实践用到]PHP的sprintf()函数用法，精减小数点后的位数，小数点保留多少位数的方法。]]></title> 
<author>hxngb5ff &lt;deay23@mail114.net&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Sun, 25 Mar 2012 03:55:53 +0000</pubDate> 
<guid>http://jackxiang.com/post/5078/#blogcomment63685</guid> 
<description>
<![CDATA[ 
	谢谢楼主，好久没看到这么好的贴了
]]>
</description>
</item>
</channel>
</rss>