php實現數字格式化,數字每三位加逗號的功能函數,具體代碼如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
function
num_format(
$num
){
if
(!
is_numeric
(
$num
)){
return
false;
}
$num
=
explode
(
'.'
,
$num
);
//把整數和小數分開
$rl
=
$num
[1];
//小數部分的值
$j
=
strlen
(
$num
[0]) % 3;
//整數有多少位
$sl
=
substr
(
$num
[0], 0,
$j
);
//前面不滿三位的數取出來
$sr
=
substr
(
$num
[0],
$j
);
//后面的滿三位的數取出來
$i
= 0;
while
(
$i
<=
strlen
(
$sr
)){
$rvalue
=
$rvalue
.
','
.
substr
(
$sr
,
$i
, 3);
//三位三位取出再合並,按逗號隔開
$i
=
$i
+ 3;
}
$rvalue
=
$sl
.
$rvalue
;
$rvalue
=
substr
(
$rvalue
,0,
strlen
(
$rvalue
)-1);
//去掉最后一個逗號
$rvalue
=
explode
(
','
,
$rvalue
);
//分解成數組
if
(
$rvalue
[0]==0){
array_shift
(
$rvalue
);
//如果第一個元素為0,刪除第一個元素
}
$rv
=
$rvalue
[0];
//前面不滿三位的數
for
(
$i
= 1;
$i
<
count
(
$rvalue
);
$i
++){
$rv
=
$rv
.
','
.
$rvalue
[
$i
];
}
if
(!
empty
(
$rl
)){
$rvalue
=
$rv
.
'.'
.
$rl
;
//小數不為空,整數和小數合並
}
else
{
$rvalue
=
$rv
;
//小數為空,只有整數
}
return
$rvalue
;
}
|
另外可以使用系統自帶的函數string number_format ( float number [, int decimals [, string dec_point, string thousands_sep]] ):
例子:
1
|
echo
number_format(
'169856420'
);
|
輸出結果將為:169,856,420
1
|
echo
number_format(
'1000000'
,2);
|
輸出結果將為:1,000,000.00
1
|
echo
number_format(
'1000000'
,2,
','
,
'.'
);
|
輸出結果將為:1.000.000,00
以上就是php實現數字每三位加逗號的代碼,剛開始大家看到題目是不是沒有思路,小編也是的,希望通過這篇文章可以給大家一些啟發。