① php數字價格格式化並且不要四捨五入
round函數四捨五入,ceil全入,floor全舍,你現在需要的是floor,例如:
echo floor(3.9999*100)/100;//輸出3.99
② 如何使用PHP函數sprintf將字元串格式化
如果有一個字元串$str = '99.9';,怎麼樣使這個字元串變成99.90呢?
我們需要用到PHP的格式化字元串函數sprintf()
函數說明:sprintf(格式, 要轉化的字元串)
返回:格式化好的字元串
例子:
$str = '99.9';
$result = sprintf('%01.2f', $str);
echo $result;//結果顯示99.90
解釋下,上面例子中的格式
這個 %01.2f 是什麼意思呢?
1、這個 % 符號是開始的意思,寫在最前面表示指定格式開始了。 也就是 "起始字元", 直到出現 "轉換字元" 為止,就算格式終止。
2、跟在 % 符號後面的是 0, 是 "填空字元" ,表示如果位置空著就用0來填滿。
3、在 0 後面的是1,這個 1 是規定整個所有的字元串佔位要有1位以上(小數點也算一個佔位)。
如果把 1 改成 6,則 $result的值將為 099.90
因為,在小數點後面必須是兩位,99.90一共5個佔位,現在需要6個佔位,所以用0來填滿。
4、在 %01 後面的 .2 (點2) 就很好理解了,它的意思是,小數點後的數字必須佔2位。 如果這時候,$str 的值為9.234,則 $result的值將為9.23.
為什麼4 不見了呢? 因為在小數點後面,按照上面的規定,必須且僅能佔2位。 可是 $str 的值中,小數點後面佔了3位,所以,尾數4被去掉了,只剩下 23。
5、最後,以 f "轉換字元" 結尾。
③ php 我想寫個循環 但是數字是3位的 就是 001 002 003 004 005 006 007 008 009 010 011 前面帶有個零
php格式化數字:位數不足前面加0補足
先實例,後講解
PHP代碼
1.<?php
2.$var=sprintf("%04d", 2);//生成4位數,不足前面補0
3.echo $var;//結果為0002
4.?>
PHP字元串sprintf()函數
語法
sprintf(format,arg1,arg2,arg++)
參數 描述
format 必需。轉換格式。
arg1 必需。規定插到 format 字元串中第一個 % 符號處的參數。
arg2 可選。規定插到 format 字元串中第二個 % 符號處的參數。
arg++ 可選。規定插到 format 字元串中第三、四等等 % 符號處的參數。
說明
參數 format 是轉換的格式,以百分比符號 ("%") 開始到轉換字元結束。下面的可能的 format 值:
•%% - 返回百分比符號
•%b - 二進制數
•%c - 依照 ASCII 值的字元
•%d - 帶符號十進制數
•%e - 可續計數法(比如 1.5e+3)
•%u - 無符號十進制數
•%f - 浮點數(local settings aware)
•%F - 浮點數(not local settings aware)
•%o - 八進制數
•%s - 字元串
•%x - 十六進制數(小寫字母)
•%X - 十六進制數(大寫字母)
arg1, arg2, ++ 等參數將插入到主字元串中的百分號 (%) 符號處。該函數是逐步執行的。在第一個 % 符號中,插入 arg1,在第二個 % 符號處,插入 arg2,依此類推。
PHP代碼
1.<?php
2.$number = 123;
3.$txt = sprintf("%f",$number);
4.echo $txt;
5.?>
循環很簡單:
<?php
$number=0;
if($number<100)
{
$number=$number+1;
$txt=sprintf("%03d",$number);//生成3位數,不足前面補0
echo $txt;
}
?>
④ money_format — 將數字格式化成貨幣字元串
這是總結後的知識點,希望能幫到你,數據有點多!
money_format
(PHP 4 >= 4.3.0, PHP 5, PHP 7)
money_format — 將數字格式化成貨幣字元串
說明
money_format ( string $format , float $number ) : string
money_format() 返回格式化好的 number 版本。 此函數包裝了 C 函數庫中的 strfmon(),不同之處是:此實現每次只能轉化一個數字。
參數
format
格式字元串由以下幾部分組成:
單個 % 字元
可選的標記(flags)
可選的欄位寬度
可選的,左側精度
可選的,右側精度
必選的,單個轉化字元
標記(Flags)
可選多個標記,分別是:
=f
字元:=,並緊跟一個字元(單位元組) f,用於數字填充。默認的填充字元是空格。
^
禁用分組字元(比如金額中的逗號。在本地區域設置 locale 中定義)。
+ or (
正負數字的格式。使用 +,將使用區域設置(locale)中相當於 + 和 - 的符號。 如果使用 (,負數將被圓括弧圍繞。不設置的話,默認為 +。
!
不輸出貨幣符號(比如 ¥)。
-
有這個符號的時候,將使欄位左對齊(填充到右邊),默認是相反的,是右對齊的(填充到左邊)。
⑤ PHP符串處理函數
PHP5字元串處理函數
addcslashes — 為字元串裡面的部分字元添加反斜線轉義字元
addslashes — 用指定的方式對字元串裡面的字元進行轉義
bin2hex — 將二進制數據轉換成十六進製表示
chop — rtrim() 的別名函數
chr — 返回一個字元的ASCII碼
chunk_split — 按一定的字元長度將字元串分割成小塊
convert_cyr_string — 將斯拉夫語字元轉換為別的字元
convert_uudecode — 解密一個字元串
convert_uuencode — 加密一個字元串
count_chars — 返回一個字元串裡面的字元使用信息
crc32 — 計算一個字元串的crc32多項式
crypt — 單向散列加密函數
echo — 用以顯示一些內容
explode — 將一個字元串用分割符轉變為一數組形式
fprintf — 按照要求對數據進行返回,並直接寫入文檔流
get_html_translation_table — 返回可以轉換的HTML實體
hebrev — 將Hebrew編碼的字元串轉換為可視的文本
hebrevc — 將Hebrew編碼的字元串轉換為可視的文本
html_entity_decode — htmlentities ()函數的反函數,將HTML實體轉換為字元
htmlentities — 將字元串中一些字元轉換為HTML實體
htmlspecialchars_decode — htmlspecialchars()函數的反函數,將HTML實體轉換為字元
htmlspecialchars — 將字元串中一些字元轉換為HTML實體
implode — 將數組用特定的分割符轉變為字元串
join — 將數組轉變為字元串,implode()函數的別名
levenshtein — 計算兩個詞的差別大小
localeconv — 獲取數字相關的格式定義
ltrim — 去除字元串左側的空白或者指定的字元
md5_file — 將一個文件進行MD5演算法加密
md5 — 將一個字元串進行MD5演算法加密
metaphone — 判斷一個字元串的發音規則
money_format — 按照參數對數字進行格式化的輸出
nl_langinfo — 查詢語言和本地信息
nl2br — 將字元串中的換行符「n」替換成「
」
number_format — 按照參數對數字進行格式化的輸出
ord — 將一個ASCII碼轉換為一個字元
parse_str — 把一定格式的字元串轉變為變數和值
print — 用以輸出一個單獨的值
printf — 按照要求對數據進行顯示
quoted_printable_decode — 將一個字元串加密為一個8位的二進制字元串
quotemeta — 對若干個特定字元進行轉義
rtrim — 去除字元串右側的空白或者指定的字元
setlocale — 設置關於數字,日期等等的本地格式
sha1_file — 將一個文件進行SHA1演算法加密
sha1 — 將一個字元串進行SHA1演算法加密
similar_text — 比較兩個字元串,返回系統認為的相似字元個數
soundex — 判斷一個字元串的發音規則
sprintf — 按照要求對數據進行返回,但是不輸出
sscanf — 可以對字元串進行格式化
str_ireplace — 像str_replace()函數一樣匹配和替換字元串,但是不區分大小寫
str_pad — 對字元串進行兩側的補白
str_repeat — 對字元串進行重復組合
str_replace — 匹配和替換字元串
str_rot13 — 將字元串進行ROT13加密處理
str_shuffle — 對一個字元串裡面的字元進行隨機排序
str_split — 將一個字元串按照字元間距分割為一個數組
str_word_count — 獲取字元串裡面的英文單詞信息
strcasecmp — 對字元串進行大小比較,不區分大小寫
strchr — 通過比較返回一個字元串的部分strstr()函數的別名
strcmp — 對字元串進行大小比較
strcoll – 根據本地設置對字元串進行大小比較
strcspn — 返回字元連續非匹配長度的值
strip_tags — 去除一個字元串裡面的HTML和PHP代碼
stripcslashes — 反轉義addcslashes()函數轉義處理過的字元串
stripos — 查找並返回首個匹配項的位置,匹配不區分大小寫
stripslashes — 反轉義addslashes()函數轉義處理過的字元串
stristr — 通過比較返回一個字元串的部分,比較時不區分大小寫
strlen — 獲取一個字元串的編碼長度
strnatcasecmp — 使用自然排序法對字元串進行大小比較,不區分大小寫
strnatcmp — 使用自然排序法對字元串進行大小比較
strncasecmp — 對字元串的前N個字元進行大小比較,不區分大小寫
strncmp — 對字元串的前N個字元進行大小比較
strpbrk — 通過比較返回一個字元串的部分
strpos — 查找並返回首個匹配項的位置
strrchr — 通過從後往前比較返回一個字元串的.部分
strrev — 將字元串裡面的所有字母反向排列
strripos — 從後往前查找並返回首個匹配項的位置,匹配不區分大小寫
strrpos – 從後往前查找並返回首個匹配項的位置
strspn — 匹配並返回字元連續出現長度的值
strstr — 通過比較返回一個字元串的部分
strtok — 用指定的若干個字元來分割字元串
strtolower — 將字元串轉變為小寫
strtoupper –將字元串轉變為大寫
strtr — 對字元串比較替換
substr_compare — 對字元串進行截取後的比較
substr_count — 計算字元串中某字元段的出現次數
substr_replace — 對字元串中的部分字元進行替換
substr — 對字元串進行截取
trim — 去除字元串兩邊的空白或者指定的字元
ucfirst — 將所給字元串的第一個字母轉換為大寫
ucwords — 將所給字元串的每一個英文單詞的第一個字母變成大寫
vfprintf — 按照要求對數據進行返回,並直接寫入文檔流
vprintf — 按照要求對數據進行顯示
vsprintf — 按照要求對數據進行返回,但是不輸出
wordwrap — 按照一定的字元長度分割字元串
strtolower()函數把所有字元變成小寫,strtoupper()函數把所有字元變成大寫,ucfirst()函數將所給字元串的第一個字母轉換為大寫,ucwords()函數將所給字元串的每一個英文單詞的第一個字母變成大寫。ucfirst()只處理字元串的首個字元,ucwords()只處理每個單詞的首字母(以空格來界定是否是單詞,「today!Hi」、「today.Hi」 會被認為是一個單詞),對於其餘字母的大小寫狀態並不改變。 ;
⑥ php 字元串轉換成數字
整數 intval($string, 10); 第二個參數表示轉換為10進制整數
不一定是整數 floatval($string)
⑦ phpstorm怎麼格式化代碼
phpstorm格式化代碼的快捷鍵:Ctrl + Alt + L
設置代碼樣式:File -> Settings -> Code Style ->PHP
(根據個人php代碼規范和個人喜好設置 PHP 等代碼的樣式結構。)
phpstorm可以設置:1、等號對齊;2、中括弧顯示方式;3、空格 顯示方式等...
⑧ PHP 格式化小數 為 字元串
<?php
//123.19
格式化為
012319的字元串
$str
=
sprintf("%.2f",123.19);
echo
'0'.str_replace('.','',
$str);
echo
"<br>\n";
//2.2
格式化為
0220的字元串
$str
=
sprintf("%.2f",2.2);
echo
'0'.str_replace('.','',
$str);
echo
"<br>\n";
//12.3456
格式化為
01235(四捨五入)的字元串
$str
=
sprintf("%.2f",12.3456);
echo
'0'.str_replace('.','',
$str);
?>
沒想到好的方法,不過這個也能實現、
$str=12.3456*100;
$str
=
sprintf("%d",$str);
echo
'0'.$str;
這個不四捨五入
⑨ PHP怎麼把數字轉換成文字。
兩個方法:
第一個是數據查的時候直接就轉換(使用case when),sql語句如下:
select regtime,logtimes,lastip,status,vip,(case vip when 1 then '普通會員' when 2 then '白金vip會員' when 3 then '鑽石VIP會員' else '未知' end) as vip_cn from table;
查出來的vip_cn列即是
第二個是通過php的配置數組的方式解決
//先定義數字和中文的對應關系
$conf[1] = '普通會員';
$conf[2] = '白金VIP會員';
$conf[3] = '鑽石VIP會員';
//正常讀取資料庫,這塊你自己寫
$arr = getList();//這個是你讀取資料庫的方法,我不知道是什麼,用這個當示例了。$arr是你讀取出來的數據的數組
$result = array();//初始化一個結果數組
foreach($arr as $val){
$val['vip_cn'] = $conf[$val['vip']];//通過配置的數組找到數字對應的中文
$result[] = $val;//把格式化好的數組拼到結果數組了
}
print_r($result);//vip_cn元組就是你要的
⑩ PHP 輸出數字0=開頭的字元串
?php
$var
=
sprintf("%03d",
12);
//將數字格式化為3位,不足位補0,如012
echo
$var;
//輸出結果為:012
?