我们常用做商城时会希望把用户输入的数字转换在RMB大写形式了,下面我整理了几个可以处理万亿级的数字转换例子,大家一起来看看这些例子吧。
例子1
代码如下 | 复制代码 |
function change_num($num) |
例子2
1.支持天文数字,整数位理论上可以无限的长;
2.支持小数,对于货币,一般精确到小数后两位,可以设置小数位是否四舍五入;
3.支持自定义货币单位,有的系统要求大写是"圆",有的要求是"元",可以自定义;
4.支持整数以0结束并含有小数的数字自定义末尾补"零",比如有的系统要求1960.30这样的数字转大写之后是"壹仟玖佰陆拾元叁角",而有的系统则要求"壹仟玖佰陆拾元零叁角",这两种情况按"正确填写票据和结算凭证的基本规定"都是正确的,现在可已自定义。
代码如下 | 复制代码 |
/** // 如果小数点后多于2位,不四舍五入就直接截,否则就处理 // 当number为0.001时,小数点后的金额为0元 // 定义 // 整数部分从右向左找 // 如果小数部分处理完之后是00,需要处理下 // 小数部分从左向右找 // 是否要在整数部分以0结尾的数字后附加0,有的系统有这要求 for($i = 0, $cnt = strlen($dec); $i
{ echo " ";<br> $number = "1000000000000000012345678900.501";<br> echo $number.":".num2rmb($number);<br> echo "n";<br> $number = "1960.30";<br> echo $number.":".num2rmb($number);<br> echo "n";<br> $number = "1960.30";<br> echo $number.":".num2rmb($number, "圆", true, true);<br> echo "n";<br> $number = "123456789.005";<br> echo $number.":".num2rmb($number);<br> echo "n";<br> $number = "123456789.005";<br> echo $number.":".num2rmb($number, "元", false);<br> echo "n";<br> $number = "10000000000000000060009.101";<br> echo $number.":".num2rmb($number);<br> echo "n";<br> $number = "1680.32";<br> echo $number.":".num2rmb($number);<br> ?> 登录后复制 |
例子3
看上面的个人更喜欢下面这个
代码如下 | 复制代码 |
//把数字金额转换成中文大写数字的函数 $num=round($num,2); $i=0; while (1){ $p1=substr($c1,2*$n,2); $p2=substr($c2,2*$i,2); $i=$i+1; if($num==0){ //we chop out the useless characters to form the correct output if ($m=='零元' || $m=='零万' || $m=='零亿' || $m=='零零'){ if(substr($c,strlen($c)-2,2)=='零'){ return $c; |