实现思路
1.将输入的数字乘以100,得到一个整数。
2.计算该整数的长度,即数字的长度。
3.根据长度判断数字的单位:
如果长度大于10,则数字的单位为亿。将原数字乘以0.000000001,并保留两位小数,最后加上单位"亿"。
如果长度大于6,则数字的单位为万。将原数字乘以0.00001,并保留两位小数,最后加上单位"万"。
否则,数字的单位为个。将原数字乘以0.01,并保留两位小数。
4.返回带单位的字符串。 注意:在计算过程中,使用了floor函数取整,以及substr_replace函数替换字符串中的字符。最后返回的字符串形式的数字采用了四舍五入取两位小数的方式。
示例代码
<?php function float_number($number){ $number = $number*100; $length = strlen(floor($number)); //数字长度 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);
方法补充
除了上文的方法,小编还为大家整理了其他php实现数字、单位转化的相关方法,希望对大家有所帮助
方法一:
例如21234需要转换为2.1万,281456789需要转换为2.8亿
/** * 格式化数字 */ public function float_number($number){ $length = strlen($number); //数字长度 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 数字转汉字
<?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 = ''; // 如果是两位数 if($numberLength == 2 && $number[0] == 1){ if($number[1] == 0){ $str .= $arrayUnit[1]; }else{ $str .= $arrayUnit[1].$arrayNumber[$number[1]]; } echo $str; return $str; } // 不是两位数 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;
到此这篇关于php实现数字转亿万单位的示例代码的文章就介绍到这了,更多相关php数字转亿万单位内容请搜索插件窝以前的文章或继续浏览下面的相关文章希望大家以后多多支持插件窝!