`
dcj3sjt126com
  • 浏览: 1872535 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

数字转换成中文大小写

    博客分类:
  • PHP
 
阅读更多
<?
//chinese_money.PHP
//Changing Arab Money Num to Chinese Money Num
/*======================

Functions List:

Chinese_Money_Max()
小数点前
此函数可以单独拿出用于将阿拉伯数字转为中文数字(大小写可选,默认为大写)
仅限整数(正负皆可)

Chinese_Money_Min()
处理小数点后

Chinese_Money()

=======================*/

function Chinese_Money_Max($i,$s=1){
    $c_digIT_min = array("零","十","百","千","万","亿","兆");
    $c_num_min = array("零","一","二","三","四","五","六","七","八","九","十");
   
    $c_digIT_max = array("零","拾","佰","仟","万","亿","兆");
    $c_num_max = array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖","拾");
   
    if($s==1){
        $c_digIT = $c_digIT_max;
        $c_num = $c_num_max;
    }else{
        $c_digIT = $c_digIT_min;
        $c_num = $c_num_min;
    }

    if($i<0)
        return "负".Chinese_Money_Max(-$i);
        //return "-".Chinese_Money_Max(-$i);
    if ($i < 11)
        return $c_num[$i];
    if ($i < 20)
        return $c_num[1].$c_digIT[1] . $c_num[$i - 10];
    if ($i < 100) {
        if ($i % 10)
            return $c_num[$i / 10] . $c_digIT[1] . $c_num[$i % 10];
        else
            return $c_num[$i / 10] . $c_digIT[1];
    }
    if ($i < 1000) {
        if ($i % 100 == 0)
            return $c_num[$i / 100] . $c_digIT[2];
        else if ($i % 100 < 10)
            return $c_num[$i / 100] . $c_digIT[2] . $c_num[0] . Chinese_Money_Max($i % 100);
        else if ($i % 100 < 10)
            return $c_num[$i / 100] . $c_digIT[2] . $c_num[1] . Chinese_Money_Max($i % 100);
        else
            return $c_num[$i / 100] . $c_digIT[2] . Chinese_Money_Max($i % 100);
    }
    if ($i < 10000) {
        if ($i % 1000 == 0)
            return $c_num[$i / 1000] . $c_digIT[3];
        else if ($i % 1000 < 100)
            return $c_num[$i / 1000] . $c_digIT[3] . $c_num[0] . Chinese_Money_Max($i % 1000);
        else
            return $c_num[$i / 1000] . $c_digIT[3] . Chinese_Money_Max($i % 1000);
    }
    if ($i < 100000000) {
        if ($i % 10000 == 0)
            return Chinese_Money_Max($i / 10000) . $c_digIT[4];
        else if ($i % 10000 < 1000)
            return Chinese_Money_Max($i / 10000) . $c_digIT[4] . $c_num[0] . Chinese_Money_Max($i % 10000);
        else
            return Chinese_Money_Max($i / 10000) . $c_digIT[4] . Chinese_Money_Max($i % 10000);
    }
    if ($i < 1000000000000) {
        if ($i % 100000000 == 0)
            return Chinese_Money_Max($i / 100000000) . $c_digIT[5];
        else if ($i % 100000000 < 1000000)
            return Chinese_Money_Max($i / 100000000) . $c_digIT[5] . $c_num[0] . Chinese_Money_Max($i % 100000000);
        else
            return Chinese_Money_Max($i / 100000000) . $c_digIT[5] . Chinese_Money_Max($i % 100000000);
    }
    if ($i % 1000000000000 == 0)
        return Chinese_Money_Max($i / 1000000000000) . $c_digIT[6];
    else if ($i % 1000000000000 < 100000000)
        return Chinese_Money_Max($i / 1000000000000) . $c_digIT[6] . $c_num[0] . Chinese_Money_Max($i % 1000000000000);
    else
        return Chinese_Money_Max($i / 1000000000000) . $c_digIT[6] . Chinese_Money_Max($i % 1000000000000);
}

function Chinese_Money_Min($a){
    $c_num = array("零","一","二","三","四","五","六","七","八","九","十");
    if($a<10)
        return $c_num[0] . "角" . $c_num[$a] . "分";
    else if($a%10 == 0)
        return $c_num[$a/10] . "角" . $c_num[0] . "分";
    else
        return $c_num[floor($a/10)] . "角" . $c_num[$a%10] ."分";
}
/*小数点后两位*/
function Chinese_Num_Min($a){
    $c_num = array("零","一","二","三","四","五","六","七","八","九","十");
    if($a<10)
        return $c_num[0] . $c_num[$a] ;
    else if($a%10 == 0)
        return $c_num[$a/10] . $c_num[0] ;
    else
        return $c_num[floor($a/10)] . $c_num[$a%10];
}


function Chinese_Money($i){
 $j=Floor($i);
    $x=($i-$j)*100;
    //return $x;
    //return Chinese_Money_Max($j)."元".Chinese_Money_Min($x)."整";
    return Chinese_Money_Max($j,'0')."点".Chinese_Num_Min($x);
}

//The Following Code is Testing The Functions:
/*
$e_money =332123.32;
 echo Chinese_Money($e_money);
*/
?>

 

 

分享到:
评论

相关推荐

    数字大小写转换(转换为汉字大写)

    首先,我们来理解标题“数字大小写转换(转换为汉字大写)”所指的知识点。 在会计、财务和其他需要精确表示金额的领域,数字通常会用汉字大写表示,以避免混淆和提高准确性。例如,数字123456会表示为“壹拾贰万叁...

    C#379-数字大小写转换器,源代码

    1. **字符串操作**:C#中的`string`类提供了丰富的字符串操作方法,如`ToLower()`和`ToUpper()`用于转换字符串的大小写,但这些方法不适用于数字转换,因为它们只是简单地改变字母的大小写,而不能处理1、2、3到壹、...

    vb数字、金额大小写转换源码

    这个“vb数字、金额大小写转换源码”提供了一种解决方案,帮助开发者将数字或者金额从阿拉伯数字形式转换为中文的大写形式,以满足中国财务规范的要求,比如在填写支票或财务报表时。 在中文中,数字的大小写转换有...

    将阿拉伯数字转换为汉字数字或者汉字大写金额

    1、该dll能将阿拉伯数字转换为汉字数字或者中文大写金额。例如1234567.07可转换为: “一百二十三万四千五百六十七点零七”或“壹佰贰拾叁万肆仟伍佰陆拾柒圆零柒分”。 目前支持正负千亿以内(整数部分不超过12位)...

    字母大小写转换工具和人民币大小写转换工具

    因此,有了人民币大小写转换工具,输入数字后即可自动生成对应的汉字大写金额,极大地提高了工作效率和准确性。这种工具可能包含内置的数字到汉字映射,以及一些特定规则,比如零的表达(如“零”、“O”或“—”)...

    数字大小写转换

    "数字大小写转换"这个主题主要涉及到如何将阿拉伯数字(0-9)转化为汉字的大写形式,以便于财务报表、发票和银行单据等正式文档的填写。这种转换在计算机程序中通常通过特定的算法实现,确保准确性和一致性。 首先...

    数字大小写转换.rar

    在IT领域,尤其是在财务、会计或者合同管理工作中,经常需要将数字从标准的...总的来说,“数字大小写转换.rar”提供了一种便捷的解决方案,解决了财务及合同工作中常见的数字转换问题,提升了工作效率和数据准确性。

    数字金钱转换成中文大写

    2. 对应转换:将每个数字转换为相应的中文大写,如1对应壹,2对应贰,以此类推。同时,根据位数添加相应的单位,例如12后加“万”。 3. 填充零:如果某一位是0,则写为“零”。例如,3456中“5”的前一位是0,所以...

    c#金额大小写转换类

    总之,C#中的金额大小写转换类是一个实用的工具,通过精心设计的算法和数据结构,可以将数字金额准确且高效地转换为中文大写形式。这个过程涉及到了字符串处理、数值运算以及对中文数字习惯的理解,是C#开发者在处理...

    人民币转换程序 大小写转换

    在IT行业中,编程时常涉及到数据的格式化处理,其中一种常见的需求是将数字转换成特定的文本格式,例如人民币的大写表示。人民币的大小写转换是财务和会计领域中的基本操作,因为在中国,正式的财务文件中通常要求...

    PowerBuilder人民币大小写转换

    ### PowerBuilder人民币大小写转换知识点解析 在PowerBuilder开发中,进行人民币金额的大小写转换是一种常见的需求。这种转换主要用于财务、会计等系统的输出显示,确保数据格式符合规范且易于理解。下面将详细介绍...

    大小写金额转换

    在IT领域,尤其是在编程与财务应用的交叉领域中,“大小写金额转换”是一个常见的需求,尤其是在处理财务报表、发票或银行交易时。该功能的主要目的是将数字表示的金额转换为中文大写形式,以符合中国会计和金融领域...

    C#大小写转换form程序

    提到的“C#实例:人民币大小写转换程序”可能是指将数字转换为中文大写的金额表示,这是财务软件或会计系统中常见的需求。这需要特定的算法,将数字映射到相应的中文字符,如“零”、“壹”、“贰”等,并考虑...

    money 金额大小写转换

    在IT领域,尤其是在财务软件开发或自动化处理中,金额大小写转换是一项常见的需求。这是因为中国的会计及金融系统在正式的财务报表和凭证中通常要求使用汉字大写来表示金额,以防止篡改数字,增强账目的准确性。...

    数字大小写转化的一个东西

    标题"数字大小写转化的一个东西"所指的,就是一种能够将数字转换为其汉字大写形式的工具或方法。这样的功能有助于确保数字的清晰易读,尤其是在需要手工填写或者核对财务报表时。 描述中的"支持各种数字的转化,如你...

    数字金额大小写转换

    在这个场景中,"数字金额大小写转换"通常指的是将阿拉伯数字格式的金额转换成中文大写的表示方式,以便于财务人员进行读取和核对,减少输入错误的可能性。 在中国,根据会计规范,大额交易的金额通常会用中文大写...

    金额大小写转换vc++

    4. **大小写转换**:遍历每个“级”的数字,根据数字对应的中文大写进行替换。这里需要创建一个映射表,将0-9的数字映射到相应的中文大写。 5. **特殊处理**:处理“亿”、“万”等单位,以及小数点后的“角”、...

    C#编写数字大小写转换器源代码.zip

    在C#编程中,开发一个数字大小写转换器是一个常见的任务,特别是在财务软件或银行系统中,因为这些系统经常需要将阿拉伯数字转换成中文大写,以增强账单和凭证的准确性。本项目"数字大小写转换器"提供了一个完整的...

    人名币大小写转换js代码

    在IT行业中,尤其是在网页开发领域,经常会遇到需要处理各种数据格式的情况,比如将数字转换成中文大写的人民币格式。这在财务系统或者电子商务网站中尤为常见,因为它们需要以规范的金融格式展示金额。JavaScript...

Global site tag (gtag.js) - Google Analytics