/*

PHP版阿拉伯数字RMB转化大写人民币 BY厕所的灯 AT 2005-03-24

因为小数点后最多只有2位,所以我没有用递归,直接一个数一个数取的,整数位用的是递归计算的,感觉精华也是在此,呵呵

详看注释

*/

$string_num = array();//中文大写数字

$string_cn1 = array();//中文单位

$string_cn2 = array();//中文单位

$moneyString= ''; //最后的中文结果

$string_num[0]= '零';

$string_num[1]= '壹';

$string_num[2]= '贰';

$string_num[3]= '叁';

$string_num[4]= '肆';

$string_num[5]= '伍';

$string_num[6]= '陆';

$string_num[7]= '柒';

$string_num[8]= '捌';

$string_num[9]= '玖';

$string_cn1[2]= '拾';

$string_cn1[3]= '佰';

$string_cn1[4]= '仟';

$string_cn2[1]= '角';

$string_cn2[2]= '分';

function getMoneyString($num)

{

global $string_num, $string_cn1, $string_cn2, $moneyString;

if (!eregi("^[0-9]+[\.]?[0-9]{0,2}$",$num))

return '初始错误,数值非法';

$tmp= explode('.', $num); //把小数和整数分别来计算

$num1= $tmp[0];

$num2= $tmp[1];

/*

处理整数部分

把整数分为三中情况,1:亿以上的;2:万以上的;3:万以下的

分别为第9(亿),第5(万)位

*/

if ($num1 > 0)

{

getAll($num1, '圆'); //如果整数部分不为0 最后单位为圆

}

else

{

$moneyString = '零圆';

}

//处理小数

if (intval($num2) == 0)

$moneyString.= '整'; //整数处理完毕,如果小数不存在 则加个‘整’字

else

{

//小数这里我是直接一个数一个数取的

if ($num2{0} == 0)

{

//十分位为0的情况

$moneyString .= '零' . $string_num[$num2{1}] . $string_cn2[2];

}

elseif ($num2{1} == 0)

{

//百分位为0的情况

$moneyString .= $string_num[$num2{0}] . $string_cn2[1] . '整';

}

else

{

//都不为0的情况

$moneyString .= $string_num[$num2{0}] . $string_cn2[1] . $string_num[$num2{1}] . $string_cn2[2];

}

}

return $moneyString;

}

function getAll($num , $dw) //$num 为数值 $dw为单位

{

global $string_num, $string_cn1, $string_cn2, $moneyString;

$numlen = strlen($num);

if ($num < 10000)

{

if ($num == 0)

$moneyString .= $dw;

else

$moneyString .= getPart($num) . $dw;

}

elseif ($num < 100000000)

{

$moneyString .= getAll(substr(strval($num), 0, ($numlen - 4)), '万') . getAll(substr(strval($num), ($numlen - 4)), $dw);

}

else

{

//亿是最大单位,如果超过亿,则把亿以上部分数字当成一部分进行读取

$moneyString .= getAll(substr(strval($num), 0, ($numlen - 8)), '亿') . getAll(substr(strval($num), ($numlen - 8)), $dw);

}

}

//0-9999数字的读取

function getPart($num)

{

global $string_num, $string_cn1, $string_cn2, $moneyString;

$is_zero= false; //判断是否有连续零的标记

$numlen = strlen($num);

$str = '';

$x = 0;

for ($i = $numlen; $i > 0; $i--)

{

$t = $num{$x};

if (intval(substr($num ,$x)) == 0)

{

//如果从当前$x位置出到最后为连续0则留空

$str.= '';

}

elseif (!$is_zero && $t == 0)

{

//第一次出现0则。。。

$str.= '零';

$is_zero = true;

}

elseif ($is_zero && $t == 0)

{

//连续出现则留空

$str.= '';

}

else

{

$str.= $string_num[$t] . $string_cn1[$i];

$is_zero = false;

}

$x++;

}

return $str;

}

//演示

$num = "100600000";

echo $num . "
";

echo getMoneyString($num) . "


";

$moneyString = '';

$num = "20000000000000000000000";

echo $num . "
";

echo getMoneyString($num) . "


";

$moneyString = '';

$num = "120.54";

echo $num . "
";

echo getMoneyString($num) . "


";

$moneyString = '';

$num = "31010.50";

echo $num . "
";

echo getMoneyString($num) . "


";

if($_POST)

{

$moneyString = '';

$num = $_POST['num'];

echo "您输入的是" . $num . "
";

echo "返回结果:".getMoneyString($num) . "


";

}

echo "

数字  ";

?>

10000php换人民币,转 数字转大写人民币相关推荐

  1. php 数字转大写人民币

    /***数字转大写人民币* @param [type] $num [description]* @return [type] [description]*/ function num2rmb ($nu ...

  2. 关于php数字转大写人民币的代码(完善)

    之前看到一个php版本的把数字变为大写人民币的代码,以前没有打开display_errors,后来为了提高代码质量,把它打开了,发现了几处错误,看着很不爽,现在在一个系统里面应用了,部署到生产环境,发 ...

  3. 将一串数字转为大写人民币形式

    数字转人民币大写形式 function toChinese(str){ //大写数字 var arrNum = ['零','壹','贰','叁','肆','伍','陆','柒','捌','玖'] // ...

  4. 426rmb to php,PHP 转换数字为大写人民币之二

    //转换数字到人民币 function changetormb($data) { $capnum = array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌' ...

  5. java 数字转换开发票大写格式_Java转化数字为大写人民币

    /* * 将小写的人民币转化成大写 */ public static String convertToChineseNumber(double number) { StringBuffer chine ...

  6. PHP人民币小写数字转大写中文

    <?phpecho rmb_format(123456789.36,'false'); /*** 人民币小写转大写** @param string $number 待处理数值* @param b ...

  7. 【解决方案 二十三】带单位的数值转大写人民币金额

    最近接到一个任务,要去把普通的数值带着单位转大写人民币金额,例如:5.2 万元 转为大写:伍万贰仟元,这其中可以拆解为两个任务,一个是数值转人民币大写,还有一个就是把单位体现进来,为了解耦合,我决定把 ...

  8. 使用Vue开发一个大写人民币转换器

    朋友是做财务的,由于工作时间不长,每次将数字转为大写人民币的时候,总是提心吊胆的,生怕弄错了.而且,如果是整数的话,还好,但是有小数的时候就比较费劲了,比如123.45,转成大写应该是壹佰贰拾叁元肆角 ...

  9. 使用 C# 将数字转换成大写人民币

    贴段最近在项目中用到的一个函数. 因涉及到财务,需要把数字符转换成大写人民币汉字,于是自己动手写了一个,使用的算法比较笨,各位看客不要笑啊. 可转换数字大小在10亿以下,超过的,就无能为力了,不过大家 ...

最新文章

  1. OpenCV 新版 4.5.1 发布!
  2. 简单用数组模拟顺序栈(c++)
  3. Python中shuffle() 函数的作用及用法
  4. 我不断收到“ Uncaught SyntaxError:意外令牌o”
  5. 使用OpenCV调整图像的亮度和对比度
  6. jquery.seat-chartsMark在线选座插件使用
  7. 怎么制作linux光盘镜像,linux光盘镜像文件制作攻略
  8. opencv 双目标定操作完整版
  9. Python案例—AQI 空气质量指数
  10. 华为防火墙的NAT介绍及配置详解
  11. Python实现小说下载器,可以打包exe
  12. 尚硅谷_2019互联网大厂高频重点面试题(第二季)思维导图脑图笔记完整版
  13. 《黑天鹅》读书笔记(part6)--在正统经济学中,理性成了一件紧身衣
  14. Python | 判定IP地址合法性的四种方法
  15. Python 教程之 Numpy(4)—— 数据类型对象
  16. buffer pool详解(free链表+flush链表+lru链表)
  17. MySQL 数据库如何存储时间
  18. Centos7下RTL8188eu USB无线网卡(TP WN725N) 驱动源码下载和编译步骤
  19. python源码编译安装 gb18030_Python3 处理 gb18030 乱码
  20. PHP自学笔记 ---李炎恢老师PHP第一季 TestGuest0.7

热门文章

  1. css字体样式渐变导致360浏览器vue兼容性问题
  2. Windows安全检查脚本 bat 批处理
  3. 计算机技术在企业管理中的应用浅论,浅谈计算机技术在现代企业管理中的应用...
  4. html5动漫动态背景图片,简单动画-让你的背景图动起来!!!
  5. Halcon模版匹配
  6. EDraw 亿图图示设计软件 一款好用的绘制网络拓扑图的软件
  7. 谷歌团队在平安金融中心_Google银行业务可以教给我们关于金融和科技的未来
  8. 我对价值投资的思考(一)
  9. Java项目:SSH自驾游管理系统
  10. 测试治具、夹具、托盘