10000php换人民币,转 数字转大写人民币
/*
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换人民币,转 数字转大写人民币相关推荐
- php 数字转大写人民币
/***数字转大写人民币* @param [type] $num [description]* @return [type] [description]*/ function num2rmb ($nu ...
- 关于php数字转大写人民币的代码(完善)
之前看到一个php版本的把数字变为大写人民币的代码,以前没有打开display_errors,后来为了提高代码质量,把它打开了,发现了几处错误,看着很不爽,现在在一个系统里面应用了,部署到生产环境,发 ...
- 将一串数字转为大写人民币形式
数字转人民币大写形式 function toChinese(str){ //大写数字 var arrNum = ['零','壹','贰','叁','肆','伍','陆','柒','捌','玖'] // ...
- 426rmb to php,PHP 转换数字为大写人民币之二
//转换数字到人民币 function changetormb($data) { $capnum = array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌' ...
- java 数字转换开发票大写格式_Java转化数字为大写人民币
/* * 将小写的人民币转化成大写 */ public static String convertToChineseNumber(double number) { StringBuffer chine ...
- PHP人民币小写数字转大写中文
<?phpecho rmb_format(123456789.36,'false'); /*** 人民币小写转大写** @param string $number 待处理数值* @param b ...
- 【解决方案 二十三】带单位的数值转大写人民币金额
最近接到一个任务,要去把普通的数值带着单位转大写人民币金额,例如:5.2 万元 转为大写:伍万贰仟元,这其中可以拆解为两个任务,一个是数值转人民币大写,还有一个就是把单位体现进来,为了解耦合,我决定把 ...
- 使用Vue开发一个大写人民币转换器
朋友是做财务的,由于工作时间不长,每次将数字转为大写人民币的时候,总是提心吊胆的,生怕弄错了.而且,如果是整数的话,还好,但是有小数的时候就比较费劲了,比如123.45,转成大写应该是壹佰贰拾叁元肆角 ...
- 使用 C# 将数字转换成大写人民币
贴段最近在项目中用到的一个函数. 因涉及到财务,需要把数字符转换成大写人民币汉字,于是自己动手写了一个,使用的算法比较笨,各位看客不要笑啊. 可转换数字大小在10亿以下,超过的,就无能为力了,不过大家 ...
最新文章
- OpenCV 新版 4.5.1 发布!
- 简单用数组模拟顺序栈(c++)
- Python中shuffle() 函数的作用及用法
- 我不断收到“ Uncaught SyntaxError:意外令牌o”
- 使用OpenCV调整图像的亮度和对比度
- jquery.seat-chartsMark在线选座插件使用
- 怎么制作linux光盘镜像,linux光盘镜像文件制作攻略
- opencv 双目标定操作完整版
- Python案例—AQI 空气质量指数
- 华为防火墙的NAT介绍及配置详解
- Python实现小说下载器,可以打包exe
- 尚硅谷_2019互联网大厂高频重点面试题(第二季)思维导图脑图笔记完整版
- 《黑天鹅》读书笔记(part6)--在正统经济学中,理性成了一件紧身衣
- Python | 判定IP地址合法性的四种方法
- Python 教程之 Numpy(4)—— 数据类型对象
- buffer pool详解(free链表+flush链表+lru链表)
- MySQL 数据库如何存储时间
- Centos7下RTL8188eu USB无线网卡(TP WN725N) 驱动源码下载和编译步骤
- python源码编译安装 gb18030_Python3 处理 gb18030 乱码
- PHP自学笔记 ---李炎恢老师PHP第一季 TestGuest0.7