国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php的sprintf函數的用法 控制浮點數格式

2024-09-04 11:49:57
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了php的sprintf函數的用法,需要的朋友可以參考下

控制浮點數打印格式

浮點數的打印和格式控制是sprintf 的一大常用功能,浮點數使用格式符”%f”控制,默認保留小數點后6 位數字,比如:

sprintf("%f", 3.1415926); //結果:"3.141593"

但,有時我們希望自己控制打印的寬度和小數位數,這時就應該使用:”%m.nf”格式,其中m 表示打印數字的整體寬度,n 表示小數點后的位數。比如:

  1. sprintf(" %9.3f", 3.1415926); //右對齊:位數不夠用空格補全。結果:"    3.142" 
  2. sprintf(" %-9.3f", 3.1415926); //左對齊:位數不夠用空格補全。結果:"3.142    " 
  3. sprintf(" %.3f", 3.1415926); //不指定總寬度,結果:"3.142" 

注意一個問題,代碼如下:

  1. $num = 100; 
  2. sprintf("%.2f"$num ); 
  3. sprintf("%.2f", (double)$num); 

上面的兩個結果真的一樣嗎?雖然看起來是一樣的,但是下面的原因,可能會有所啟發.

原因是:參數壓棧時調用者并不知道跟num相對應的格式控制符是個”%f”。而函數執行時函數本身則并不知道當年被壓入棧里的是個整數,于是可憐的保存整數$num的那4個字節就被不由分說地強行作為浮點數格式來解釋了,整個亂套了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乡宁县| 青阳县| 饶河县| 荆门市| 桑日县| 嵩明县| 呼图壁县| 连平县| 南川市| 贡觉县| 海宁市| 潜山县| 启东市| 胶州市| 宁陕县| 扎赉特旗| 普格县| 岗巴县| 洞头县| 苏州市| 阿图什市| 泸定县| 调兵山市| 庆云县| 元氏县| 轮台县| 达孜县| 隆德县| 颍上县| 湘潭市| 庄浪县| 四平市| 威远县| 乌拉特中旗| 贵德县| 兴仁县| 蒙阴县| 托克逊县| 唐海县| 新乡县| 徐水县|