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處理后端&接口訪問(wèn)超時(shí)的解決方法
下面小編就為大家?guī)?lái)一篇淺談php處理后端&接口訪問(wèn)超時(shí)的解決方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-10-10
PHP設(shè)計(jì)模式之狀態(tài)模式定義與用法詳解
這篇文章主要介紹了PHP設(shè)計(jì)模式之狀態(tài)模式定義與用法,結(jié)合實(shí)例形式分析了php狀態(tài)模式的概念、原理、定義、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下2018-04-04
PHP+.htaccess實(shí)現(xiàn)全站靜態(tài)HTML文件GZIP壓縮傳輸(一)
PHP+.htaccess實(shí)現(xiàn)全站靜態(tài)HTML文件GZIP壓縮傳輸(一)...2007-02-02
PHP實(shí)現(xiàn)數(shù)組根據(jù)某個(gè)單元字段排序操作示例
這篇文章主要介紹了PHP實(shí)現(xiàn)數(shù)組根據(jù)某個(gè)單元字段排序操作,結(jié)合實(shí)例形式分析了php基于array_multisort函數(shù)降序排序操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-08-08
Uncaught exception com_exception with message Failed to crea
Fatal error: Uncaught exception 'com_exception' with message 'Failed to create COM object `InternetExplorer.Application': 拒絕訪問(wèn)2012-01-01
php下把數(shù)組保存為文件格式的實(shí)例應(yīng)用
我們通常把一些常用的數(shù)據(jù)保存為數(shù)組格式方便調(diào)用,同時(shí)這也是緩存的重要方法。2010-02-02
記錄PHP錯(cuò)誤日志 display_errors與log_errors的區(qū)別
錯(cuò)誤回顯,一般常用語(yǔ)開(kāi)發(fā)模式,但是很多應(yīng)用在正式環(huán)境中也忘記了關(guān)閉此選項(xiàng)。錯(cuò)誤回顯可以暴露出非常多的敏感信息,為攻擊者下一步攻擊提供便利。推薦關(guān)閉此選項(xiàng)2012-10-10
PHP從零開(kāi)始打造自己的MVC框架之入口文件實(shí)現(xiàn)方法詳解
這篇文章主要介紹了PHP從零開(kāi)始打造自己的MVC框架之入口文件實(shí)現(xiàn)方法,結(jié)合具體實(shí)例形式分析了php實(shí)現(xiàn)MVC框架入口文件的原理、定義及使用方法,需要的朋友可以參考下2019-06-06

