`
hegz
  • 浏览: 442729 次
  • 性别: Icon_minigender_1
  • 来自: 茂名
社区版块
存档分类
最新评论

阿拉伯数字金额转大写人民币

    博客分类:
  • PHP
J# 
阅读更多

 

/**
 * 阿拉伯数字金额转大写人民币
 * 最大位数: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;
 }

 

 

 

0
1
分享到:
评论
2 楼 bardo 2011-04-17  
推荐
http://www.iteye.com/wiki/topic/983559
1 楼 lang8888511 2010-10-15  
很佩服楼主,谢谢了

相关推荐

    阿拉伯数字显示为大写人民币金额格式.pdf

    在会计和财务领域,正确地将阿拉伯数字转换为大写人民币金额是至关重要的,因为这有助于防止欺诈和误解。在Excel等电子表格软件中,我们可以快速便捷地完成这个任务,无需手动转换每一个数字。以下是一种将阿拉伯...

    人民币小写金额转大写金额(java版)

    ### 人民币小写金额转大写金额(Java版) #### 概述 本文将详细介绍一个Java程序,该程序用于将小写的人民币金额转换为大写形式。此转换主要用于财务、会计和其他正式场合,在这些场合中,大写金额是标准且必须的...

    java实现数字转换人民币中文大写工具

    Java 实现数字转换人民币中文大写工具 Java 实现数字转换人民币中文大写工具是指使用 Java 语言将数字转换为人民币中文大写格式的工具。该工具具有很高的实用价值,特别是在人事业务系统开发中,经常需要将数字转换...

    数字转换成金额大写

    "数字转换成金额大写"是一个常见的需求,特别是在Delphi这样的编程环境中。Delphi是一款强大的面向对象的集成开发环境(IDE),它提供了丰富的功能和库来支持这类转换。 在Delphi中实现这个功能,首先我们需要理解...

    自编自用的一个支持三种转换形式的金额转换大写函数access2000

    标题中的“自编自用的一个支持三种转换形式的金额转换大写函数access2000”指的是一个在Access 2000环境下开发的自定义函数,它具有将数字金额转换为大写汉字的能力,这在财务软件或者需要打印正式单据的应用中非常...

    阿拉伯数字转换为人民币大写

    在IT领域,尤其是在财务软件开发或者自动化处理财务数据时,阿拉伯数字转换为人民币大写是一项基本的需求。这是因为中国的会计标准要求在正式的财务报表和发票中,金额必须以中文大写表示,以防止篡改和提高准确性。...

    jasperIreport +Ireport实现金额大写

    Ireport实现金额大写 在irport里面写script脚本 完成转换

    php阿拉伯数字转中文人民币大写

    本文实例为大家分享了php阿拉伯数字转中文人民币大写的实现代码,供大家参考,具体代码如下 代码1:php阿拉伯数字转中文人民币大写,有详细的注释 /** *数字金额转换成中文大写金额的函数 *String Int $num 要转换...

    Qt实现人民币大写

    首先,我们要明白人民币金额大写的基本规则。在中文中,数字的大写形式有特定的对应关系,例如: 1. 零:零 2. 一至九:壹、贰、叁、肆、伍、陆、柒、捌、玖 3. 十、百、千、万、亿:拾、佰、仟、万、亿 在实现这个...

    人民币大写金额转数字源码

    本文将详细讲解如何实现“人民币大写金额转数字”的算法,主要基于C#编程语言。 首先,我们需要了解人民币大写金额的基本规则。人民币大写金额由“零”、“壹”、“贰”、“叁”、“肆”、“伍”、“陆”、“柒”、...

    使用MySQL自定义函数实现金额大小写互转

    用MySQL函数实现 小写金额与大写金额的互转,用数据库来实现

    如何实现金额大写转换Visual Basic6.0源程序,VB6.0源代码

    - **金额大写转换**:将阿拉伯数字(如123456.78)转换为中文大写(如壹拾贰万叁仟肆佰伍拾陆元柒角捌分)的过程,常见于财务系统中。 2. **实现步骤** - **创建工程**:首先,在VB6.0环境中创建一个新的标准EXE...

    C语言成序设计__实现人民币小写金额与大写金额的转换

    人民币的小写金额是使用阿拉伯数字表示的金额,例如1002300.90。大写金额则使用中文数字和单位来表示,例如“壹佰零拾零万贰仟三佰零拾零元玖角零分”。在实现转换时,我们需要将小写金额的每一位数字提取出来,并将...

    人民币金额小写转大写

    "人民币金额小写转大写"是一个常见的需求,它涉及到将阿拉伯数字(小写)转换成中文汉字(大写),以减少书写错误和欺诈的风险。在.NET框架下,C#语言提供了丰富的功能来处理这种转换。 首先,我们需要理解人民币...

    c语言小程序(人民币小写金额转换成大写金额)

    小写金额通常使用阿拉伯数字,如“1234.56元”,而大写金额则使用汉字,如“壹仟贰佰叁拾肆元伍角陆分”。转换过程中需要注意以下几点: 1. **数字到汉字的映射**:每个数字(0-9)都有对应的汉字大写形式,例如0...

    java中把数字转化为人民币大写形式

    人民币大写的表示方式与阿拉伯数字不同,1-9的大写形式分别为壹、贰、叁、肆、伍、陆、柒、捌、玖,0则为零。而个位、十位、百位、千位等的表示方式也有相应的汉字对应。例如,1234567890对应的人民币大写是壹拾贰亿...

    人民币金额小写转换大写工具

    人民币金额通常有两种表示方式:小写(阿拉伯数字)和大写(汉字)。小写的123456.78元,对应的大写则是“壹拾贰万叁仟肆佰伍拾陆元柒角捌分”。在财务报表、合同和银行转账等正式文件中,为了防止篡改和增加准确性...

    人民币大写金额转换DLL库

    2. **人民币大写金额转换**:在金融和会计领域,为了防止篡改和增强账目的清晰度,通常会将数字金额用汉字大写表示。例如,数字"1234.56"会被转换成"壹仟贰佰叁拾肆元伍角陆分"。这个DLL库提供了这样的转换功能,...

    js数字转换成大写

    ### JavaScript 数字转大写人民币金额函数解析 在日常开发工作中,经常需要处理财务相关的数据,比如将数字转换为大写人民币金额格式。这在发票、合同等正式文档中非常常见。下面我们就来详细分析一下如何用...

Global site tag (gtag.js) - Google Analytics