php實(shí)現(xiàn)數(shù)字轉(zhuǎn)億萬單位的示例代碼
實(shí)現(xiàn)思路
1.將輸入的數(shù)字乘以100,得到一個整數(shù)。
2.計算該整數(shù)的長度,即數(shù)字的長度。
3.根據(jù)長度判斷數(shù)字的單位:
如果長度大于10,則數(shù)字的單位為億。將原數(shù)字乘以0.000000001,并保留兩位小數(shù),最后加上單位"億"。
如果長度大于6,則數(shù)字的單位為萬。將原數(shù)字乘以0.00001,并保留兩位小數(shù),最后加上單位"萬"。
否則,數(shù)字的單位為個。將原數(shù)字乘以0.01,并保留兩位小數(shù)。
4.返回帶單位的字符串。 注意:在計算過程中,使用了floor函數(shù)取整,以及substr_replace函數(shù)替換字符串中的字符。最后返回的字符串形式的數(shù)字采用了四舍五入取兩位小數(shù)的方式。
示例代碼
<?php
function float_number($number){
$number = $number*100;
$length = strlen(floor($number)); //數(shù)字長度
if($length > 10){ //億單位
$str = round(substr_replace(floor($number * 0.000000001),'.',-1,0),2)."億";
}elseif($length >6){ //萬單位
//截取前倆為
$str = round(($number * 0.00001) * 0.1,2)."萬";
}else{
$str = round($number*0.01,2);
}
return $str;
}
$number = 1235989545;
echo float_number($number);方法補(bǔ)充
除了上文的方法,小編還為大家整理了其他php實(shí)現(xiàn)數(shù)字、單位轉(zhuǎn)化的相關(guān)方法,希望對大家有所幫助
方法一:
例如21234需要轉(zhuǎn)換為2.1萬,281456789需要轉(zhuǎn)換為2.8億
/**
* 格式化數(shù)字
*/
public function float_number($number){
$length = strlen($number); //數(shù)字長度
if($length > 8){ //億單位
$str = substr_replace(floor($number * 0.0000001),'.',-1,0)."億";
}elseif($length >4){ //萬單位
//截取前倆為
$str = floor($number * 0.001) * 0.1."萬";
}else{
return $number;
}
return $str;
}
方法二:
PHP 數(shù)字轉(zhuǎn)漢字
<?php
$arrayNumber = [
'0' => '零',
'1' => '一',
'2' => '二',
'3' => '三',
'4' => '四',
'5' => '五',
'6' => '六',
'7' => '七',
'8' => '八',
'9' => '九',
];
$arrayUnit = [
'0' => '',
'1' => '十',
'2' => '百',
'3' => '千',
'4' => '萬',
'5' => '十',
'6' => '百',
'7' => '千',
'8' => '億',
'9' => '十',
'10' => '百',
'11' => '千',
];
$number = (string)123456789;
$numberLength = strlen($number);
$s = 0;
$str = '';
// 如果是兩位數(shù)
if($numberLength == 2 && $number[0] == 1){
if($number[1] == 0){
$str .= $arrayUnit[1];
}else{
$str .= $arrayUnit[1].$arrayNumber[$number[1]];
}
echo $str;
return $str;
}
// 不是兩位數(shù)
for ($i=$numberLength; $i > 0; $i--) {
if($s == $numberLength - 1 && $number[$s] == 0){
}elseif($number[$s] == 0 && $number[$s+1] == 0){
//echo $s;
if( ( $numberLength - $s) == 5 && $numberLength < 9){
$str .= '萬';
}
if( ($numberLength - $s) == 9 && $numberLength > 8){
$str .= '億';
}
$s++;
}elseif($number[$s] == 0 && $number[$s+1] != 0){
if( ($numberLength - $s) == 5 ){
$str .= '萬';
}elseif( ($numberLength - $s) == 9 && $numberLength > 8){
$str .= '億';
}else{
$str .= $arrayNumber[$number[$s]];
}
$s++;
}else{
$str .= $arrayNumber[$number[$s]].$arrayUnit[$i-1];
$s++;
}
}
echo $str;
return $str;到此這篇關(guān)于php實(shí)現(xiàn)數(shù)字轉(zhuǎn)億萬單位的示例代碼的文章就介紹到這了,更多相關(guān)php數(shù)字轉(zhuǎn)億萬單位內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PHP框架Laravel插件Pagination實(shí)現(xiàn)自定義分頁
這篇文章主要為大家詳細(xì)介紹了PHP框架Laravel5.1插件Pagination實(shí)現(xiàn)自定義分頁的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-05-05
PHP獲取mysql數(shù)據(jù)表的字段名稱和詳細(xì)信息的方法
這篇文章主要介紹了PHP獲取mysql數(shù)據(jù)表的字段名稱和詳細(xì)信息的方法,本文同時還給出了獲取數(shù)據(jù)表結(jié)構(gòu)、列出數(shù)據(jù)庫數(shù)據(jù)表等方法,需要的朋友可以參考下2014-09-09
php導(dǎo)出excel格式數(shù)據(jù)問題
本篇文章主要是對php導(dǎo)出excel格式數(shù)據(jù)的問題進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-03-03
PHP實(shí)現(xiàn)多服務(wù)器session共享之NFS共享的方法
PHP實(shí)現(xiàn)多服務(wù)器session共享之NFS共享的方法...2007-03-03

