本篇文章给大家带来的内容是关于php如何实现数字金额转换大写金额(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

早些年做CRM用到的一个金额转换函数,今天从旧项目中拿出来记录一下。金额转换的函数方法有很多,都很不错。不过这个是小崔刚工作的时候写的一个转换函数,多少还是有点纪念意义。如有问题请朋友们指出,小崔及时修正。谢谢啦!

废话不多说直接上代码:<?php

/**

* 数字金额转换大写数字

* $num 数字类型

*/

function inttodaxie($num) {

//判断$num是否数字

if(!is_numeric($num)) return -1;

$dint = array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');

$len = strlen($num);

$dstr = '';

for($i = 0; $i <= $len; $i++) {

$key_ = substr($num, $i, 1);

$dstr .= $dint[$key_];

}

return $dstr;

}

$result = inttodaxie(90011234);

var_dump($result);

echo '
';

以上是基础转换代码,在这个基础上进行二次改造:<?php

/**

* 转换大写金额

* $num 数字类型

*/

function inttod($num) {

//判断$num是否存在

if(!$num) return '零圆';

//保留小数点后两位

$num = round($num, 2);

//将浮点转换为整数

$tem_num = $num * 100;

//判断数字长度

$tem_num_len = strlen($tem_num);

if($tem_num_len > 14) {

return '数字太大了吧,有这么大的金钱吗';

}

//大写数字

$dint = array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');

//大写金额单位

$danwei = array('仟', '佰', '拾', '亿', '仟', '佰', '拾', '万', '仟', '佰', '拾', '圆');

$danwei1 = array('角', '分');

//空的变量用来保存转换字符串

$daxie = '';

//分割数字,区分圆角分

list($left_num, $right_num) = explode('.', $num);

//计算单位长度

$danwei_len = count($danwei);

//计算分割后的字符串长度

$left_num_len = strlen($left_num);

$right_num_len = strlen($right_num);

//循环计算亿万元等

for($i = 0; $i < $left_num_len; $i++) {

//循环单个文字

$key_ = substr($left_num, $i, 1);

//判断数字不等于0或数字等于0与金额单位为亿、万、圆,就返回完整单位的字符串

if($key_ !== '0' || ($key_ == '0' && ($danwei[$danwei_len - $left_num_len + $i] == '亿' || $danwei[$danwei_len - $left_num_len + $i] == '万' || $danwei[$danwei_len - $left_num_len + $i] == '圆'))) {

$daxie = $daxie . $dint[$key_] . $danwei[$danwei_len - $left_num_len + $i];

} else {

//否则就不含单位

$daxie = $daxie . $dint[$key_];

}

}

//循环计算角分

for($i = 0; $i < $right_num_len; $i++) {

$key_ = substr($right_num, $i, 1);

if($key_ > 0) {

$daxie = $daxie . $dint[$key_] . $danwei1[$i];

}

}

//计算转换后的长度

$daxie_len = strlen($daxie);

//设置文字切片从0开始,utf-8汉字占3个字符

$j = 0;

while($daxie_len > 0) {

//每次切片两个汉字

$str = substr($daxie, $j, 6);

//判断切片后的文字不等于零万、零圆、零亿、零零

if($str == '零万' || $str == '零圆' || $str == '零亿' || $str == '零零') {

//重新切片

$left = substr($daxie, 0, $j);

$right = substr($daxie, $j + 3);

$daxie = $left . $right;

}

$j += 3;

$daxie_len -= 3;

}

return '人民币' . $daxie . '整';

}

$result = inttod(99090909090.19);

var_dump($result);

运行结果:

源代码已上传GitHub:https://github.com/cuiyuanxin/php-demo/blob/master/capital.php

php大写数字转换,php如何实现数字金额转换大写金额(代码示例)相关推荐

  1. JAVA练习题22:收据上的金额转换

    金额转换 规则:收据上的金额转换,将小写转为大写.大写格式为__佰__拾__万__仟__佰__拾__元 举例:2135 => 零佰零拾零万贰仟壹佰叁拾伍元 789 => 零佰零拾零万零仟柒 ...

  2. 小写数字转大写_不得不说的Excel小技巧:设置单元格格式将小写金额转换成大写...

    大家好,我是小秋,近期一段时间比较忙,没有在今日头条上更新原创文章了.希望朋友们多多见谅,下面与大家分享一个Excel实用小技巧:如何设置单元格格式将小写金额转换成大写? 1.应用场景 在报销单.收据 ...

  3. 如何把数字金额转换成中文大写

    问题:要求把万亿级别内的浮点数转换成中文大写,例如把数字1112221000060.254400转换成:壹万壹仟壹佰贰拾贰亿贰仟壹佰万零陆拾元零贰角伍分 分析:关键是先把double类型转换成char ...

  4. python数字2大写汉字转换(金额转换)

    文章目录 题目 思路 代码 题目 思路 对数字进行转换,阿拉伯数字和大写汉字之间有对应关系 对单位进行转换,见下图.每4位是一组,每组中第0位 对零做处理,重复的零删除 代码 x=input(&quo ...

  5. 数字金额转换大写 先写个完整的然后将如零拾替换成零

    /*** 数字金额转换大写 先写个完整的然后将如零拾替换成零* @param n 数字* @return 中文大写数字*/public static String digitUppercase(dou ...

  6. 把数字金额转换成中文大写数字

    //把数字金额转换成中文大写数字 function changeNumMoneyToChinese(money) { var cnNums = new Array("零", &qu ...

  7. win7计算机名改成大写,图文解读win7系统excel数字小写金额转换成汉字大写金额的措施...

    有很多网友在使用电脑的过程总难免会遇到win7系统excel数字小写金额转换成汉字大写金额的情况.针对win7系统excel数字小写金额转换成汉字大写金额的问题,我给大家整理总结了详细的解决步骤.近日 ...

  8. python数字大小写转换代码_用python实现把数字人民币金额转换成大写的脚本程序...

    # -*- coding: utf-8 -*- def Num2MoneyFormat( change_number ): """ .转换数字为大写货币格式( forma ...

  9. 【简单易懂】Java字符串应用场景:数字金额转换成大写汉字金额【金额转换】

    Java字符串应用场景:数字金额转换成汉字金额 文章目录 Java字符串应用场景:数字金额转换成汉字金额 前言 一.String简单介绍 二.字符串在开发中的应用场景 三.金额转换 3.1解题思路 3 ...

  10. 把数字金额转换成人民币大写[原创]

    最近在用这个博客,感觉博客园不错,以前用的是新浪的,感觉这个更好,所以好多东西现在转到这边来了. 下面是一个数字转人民币大写的类,不啰嗦了,下面是代码:  1    /**/ /// <summ ...

最新文章

  1. 2-2. 控制对文件的访问
  2. Django 2 零基础 - 待办清单网站
  3. 【转载】我心目中最好的框架组合是
  4. ES6(三)——Set、WeakSet、Map、WeakMap
  5. rocketmq java例子_SpringBoot和RocketMQ的简单实例
  6. 算法高级(33)-拓扑排序-maven依赖关系的确定
  7. Linux安装redis和部署
  8. 东北三省计算机专业好的学校,东北地区哪个大学比较好 各自的王牌专业是什么...
  9. 性能测试指标:吞吐量,qps,并发量,响应时间
  10. 传智播客杨中科老师的wpf基础视频教程、C#视频教程
  11. Vissim与python(IntelliJ IDEA )联调环境配置
  12. Linux Sentaurus-Silvaco虚拟机使用方法
  13. 2020-12-30
  14. 不会真有人觉得在广州、深圳这样的城市月薪过万很容易吧
  15. npm报错Beginning October 4, 2021, all connections to the npm registry - including for package installa
  16. 小白学java_day1
  17. dve 二维数组信号 显示波形_交互式仿真下dve和verdi中查看二维数组值
  18. 浙江公务员考试申论指导作答的思路与方法
  19. MAC设置L2TP连接公司内部网络
  20. OC--Foundation--数组

热门文章

  1. 在字符串s的第n个字符后面插入字符串t
  2. 5角星画法 android,Android Canvas绘制正多边形和正多角星
  3. 编程篇(002)-js实现一个打点计时器
  4. Photoshop CS2 9.0注册机和注册方法
  5. 人工智能数学基础:泰勒(Taylor)公式
  6. 安全管理体系升级 迈动互联获得ISO国际认证
  7. 时差怎么理解_英国与中国的时差为什么隔8小时(英国与中国的时差解读)
  8. 解决Redis持久化数据丢失
  9. Mongodb数据丢失解决办法
  10. 程序员健身了6个月,瘦了 30 斤,怎么做到的?