/**
* 阿拉伯数字金额转大写人民币
* 最大位数:999999999999.99
*
* @param number $data
* @return string
* @author hegz
* @date 2010/05/23
*/
function numToRmb($data)
{
$capnum = array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");
$capdigit = array("","拾","佰","仟");
$subdata = explode(".", $data);
$yuan = $subdata[0];
$yaun_len = strlen($yuan);
if ($yaun_len > 12) {
return "数字字串整数部分不能大于12位。";
}
/**
* 处理整数部分
*/
$j = 0;
$nonzero = 0;
$cncap = '';
if ((int)$yuan > 0) {
for ($i = 0; $i < $yaun_len; $i++) {
// 确定个位
if ($i == 0) {
$cncap .= "元";
}
//确定万位
if ($i == 4) {
$j = 0;
$nonzero = 0;
$cncap = "万" . $cncap;
}
//确定亿位
if ($i == 8) {
$j = 0;
$nonzero = 0;
$cncap= "亿" . $cncap;
}
$numb = substr($yuan, -1, 1); // 截取尾数
$cncap = ($numb) ? $capnum[$numb] . $capdigit[$j] . $cncap : (($nonzero) ? "零" . $cncap : $cncap);
$nonzero = ($numb) ? 1 : $nonzero;
$yuan = substr($yuan, 0, strlen($yuan) - 1); //截去尾数
$j++;
}
}
$cncap = preg_replace("/(零)+/", "\\1", $cncap); // 合并连续“零”
/**
* 处理小数部分
*
* 处理“00”、“?0”、“0?”、“??”这四种情形的值
*/
if (isset($subdata[1])) {
$jiao = substr($subdata[1],0,1);
$fen = substr($subdata[1],1,1);
$jiao_val = (int)$jiao;
$fen_val = (int)$fen;
$xs = '';
if ($jiao_val == 0 && $fen_val == 0) {
$xs = '整';
} elseif ($jiao_val > 0 && $fen_val == 0) {
$xs = $capnum[$jiao_val] . '角';
} elseif ($jiao_val == 0 && $fen_val > 0) {
$xs = ((int)$yuan) ? '零' . $capnum[$fen_val] . '分' : $capnum[$fen_val] . '分';
} else {
$xs = $capnum[$jiao_val] . '角' . $capnum[$fen_val] . '分';
}
}
$cncap .= $xs;
return $cncap;
}
分享到:
相关推荐
阿拉伯数字显示为大写人民币金额格式.pdf
网上很多数字金额转人民币大写的代码也很好用,但是一直没有看到中文大写金额转数字的算法,这个是我自己敲的,也运行了单元测试,应该可用的,大家拿起看看吧,有问题欢迎留言!
本文实例为大家分享了php阿拉伯数字转中文人民币大写的实现代码,供大家参考,具体代码如下 代码1:php阿拉伯数字转中文人民币大写,有详细的注释 /** *数字金额转换成中文大写金额的函数 *String Int $num 要转换...
Ireport实现金额大写 在irport里面写script脚本 完成转换
1. 最大支持百万亿(15位整数,2位小数) ;或仟万亿(16位整数) 2. 超过最大支持仟万亿(16位整数),只输出大写数字 3. 整数部分越大,则小数部分输出越不精确 4. 负数,则忽略负号
在与财务相关的应用中,经常会用到人民币金额的大写,比如发票的打印 程序。本题的任务是:从键盘输入一个十亿以内的正整数( int 类型),把它转换 为人民币金额大写(不考虑用户输入错误的情况)。
人民币的小写金额是使用阿拉伯数字表示的金额,例如1002300.90。大写金额则使用中文数字和单位来表示,例如“壹佰零拾零万贰仟三佰零拾零元玖角零分”。在实现转换时,我们需要将小写金额的每一位数字提取出来,并将...
使用方法:先自已动手试试做,实在做不出来,再向我免费索取源码啊。欢迎大家有好料与我分享啊<BR>yuab@963.net
用MySQL函数实现 小写金额与大写金额的互转,用数据库来实现
word文档自动转换货币人民币金额大写.docword文档自动转换货币人民币金额大写.docword文档自动转换货币人民币金额大写.doc
人民币金额大写数字转换器,可以方便不经常写支票的人使用,只要输入阿拉伯数字,就自动转换成汉字了!
将阿拉伯数字的金额转化为人民币大写金额,要转换的金额最大不超过万亿。能够正确处理数字中有若干个连续0的情形。例如: 0 零元 1 壹元整 1001 壹仟零壹元整 1000010001 壹拾亿零壹万零壹元整 101.9 壹佰零壹元玖角...
将阿拉伯数字复制粘贴或输入到“输入小写数字金额”中,比如(123456),然后单击“转换为大写金额”按钮。就会在“显示中文大写金额”框中显示自动转换完成的中文大写内容...
将阿拉伯数字转化成汉字金钱 如1234.45转化为壹仟贰佰叁拾肆元肆角伍分
阿拉伯数字金额中间连续有几个“0”时,汉字大写金额中可以只写一个“零”字;阿拉伯金额数字元位是“0”,或者数字中间连续有几个“0”、元位也是“0”但角位不是“0”时,汉字大写金额可以只写一个“零”字,也...
sap abap 创建函数将阿拉伯金额数字变成人民币大写汉字,内涵具体实现代码
有没有遇到过不会人民币大写的情况? 此软件把阿拉伯数字转换为人民币大写。 需安装.net环境。
人民币金额大写的Excel公式.rar,利用公式能将本例的A1单元格用阿拉伯数字表示的金额转为大写。
货币大写金额转换插件ChinaNumToEnglishNum.js,在线将阿拉伯数字转换成中文大写、人民币大写转换工具
大家应该都知道,银行打印账单有时候会跟上人民币的阿拉伯数字以及人民币汉字大写写法,转换的过程中有一定的逻辑难度,较为麻烦,所以笔者心血来潮,花了点时间简单实现了一下这一转换过程,以供初学者参考。...