国产探花免费观看_亚洲丰满少妇自慰呻吟_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個字節就被不由分說地強行作為浮點數格式來解釋了,整個亂套了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永平县| 屏山县| 富顺县| 峡江县| 都昌县| 镇平县| 衡山县| 冷水江市| 中方县| 寿光市| 曲水县| 濮阳县| 新竹市| 商水县| 舒兰市| 自贡市| 宝清县| 晋城| 库伦旗| 彩票| 巨鹿县| 时尚| 普宁市| 萨迦县| 壤塘县| 嘉兴市| 无锡市| 余庆县| 尚志市| 靖边县| 龙海市| 嘉定区| 乌拉特后旗| 元氏县| 博野县| 响水县| 唐海县| 华宁县| 西安市| 乌苏市| 巢湖市|