php實(shí)現(xiàn)數(shù)字轉(zhuǎn)億萬(wàn)單位的示例代碼
實(shí)現(xiàn)思路
1.將輸入的數(shù)字乘以100,得到一個(gè)整數(shù)。
2.計(jì)算該整數(shù)的長(zhǎng)度,即數(shù)字的長(zhǎng)度。
3.根據(jù)長(zhǎng)度判斷數(shù)字的單位:
如果長(zhǎng)度大于10,則數(shù)字的單位為億。將原數(shù)字乘以0.000000001,并保留兩位小數(shù),最后加上單位"億"。
如果長(zhǎng)度大于6,則數(shù)字的單位為萬(wàn)。將原數(shù)字乘以0.00001,并保留兩位小數(shù),最后加上單位"萬(wàn)"。
否則,數(shù)字的單位為個(gè)。將原數(shù)字乘以0.01,并保留兩位小數(shù)。
4.返回帶單位的字符串。 注意:在計(jì)算過(guò)程中,使用了floor函數(shù)取整,以及substr_replace函數(shù)替換字符串中的字符。最后返回的字符串形式的數(shù)字采用了四舍五入取兩位小數(shù)的方式。
示例代碼
<?php
function float_number($number){
$number = $number*100;
$length = strlen(floor($number)); //數(shù)字長(zhǎng)度
if($length > 10){ //億單位
$str = round(substr_replace(floor($number * 0.000000001),'.',-1,0),2)."億";
}elseif($length >6){ //萬(wàn)單位
//截取前倆為
$str = round(($number * 0.00001) * 0.1,2)."萬(wàn)";
}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)方法,希望對(duì)大家有所幫助
方法一:
例如21234需要轉(zhuǎn)換為2.1萬(wàn),281456789需要轉(zhuǎn)換為2.8億
/**
* 格式化數(shù)字
*/
public function float_number($number){
$length = strlen($number); //數(shù)字長(zhǎng)度
if($length > 8){ //億單位
$str = substr_replace(floor($number * 0.0000001),'.',-1,0)."億";
}elseif($length >4){ //萬(wàn)單位
//截取前倆為
$str = floor($number * 0.001) * 0.1."萬(wàn)";
}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' => '萬(wàn)',
'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 .= '萬(wàn)';
}
if( ($numberLength - $s) == 9 && $numberLength > 8){
$str .= '億';
}
$s++;
}elseif($number[$s] == 0 && $number[$s+1] != 0){
if( ($numberLength - $s) == 5 ){
$str .= '萬(wàn)';
}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)億萬(wàn)單位的示例代碼的文章就介紹到這了,更多相關(guān)php數(shù)字轉(zhuǎn)億萬(wàn)單位內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PHP框架Laravel插件Pagination實(shí)現(xiàn)自定義分頁(yè)
這篇文章主要為大家詳細(xì)介紹了PHP框架Laravel5.1插件Pagination實(shí)現(xiàn)自定義分頁(yè)的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-05-05
PHP獲取mysql數(shù)據(jù)表的字段名稱(chēng)和詳細(xì)信息的方法
這篇文章主要介紹了PHP獲取mysql數(shù)據(jù)表的字段名稱(chēng)和詳細(xì)信息的方法,本文同時(shí)還給出了獲取數(shù)據(jù)表結(jié)構(gòu)、列出數(shù)據(jù)庫(kù)數(shù)據(jù)表等方法,需要的朋友可以參考下2014-09-09
php導(dǎo)出excel格式數(shù)據(jù)問(wèn)題
本篇文章主要是對(duì)php導(dǎo)出excel格式數(shù)據(jù)的問(wèn)題進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-03-03
PHP實(shí)現(xiàn)多服務(wù)器session共享之NFS共享的方法
PHP實(shí)現(xiàn)多服務(wù)器session共享之NFS共享的方法...2007-03-03
Yii使用queue實(shí)現(xiàn)隊(duì)列流程講解
Yii是一個(gè)高性能的PHP5的web應(yīng)用程序開(kāi)發(fā)框架。通過(guò)一個(gè)簡(jiǎn)單的命令行工具yiic可以快速創(chuàng)建一個(gè)web應(yīng)用程序的代碼框架,開(kāi)發(fā)者可以在生成的代碼框架基礎(chǔ)上添加業(yè)務(wù)邏輯,以快速完成應(yīng)用程序的開(kāi)發(fā)2022-11-11

