/*** 获取人民币数字大写* @param int|string $num* @return string*/
function get_rmb(int|string $num): string
{$str = '';$a = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];$b = ['分', '角', '元', '整'];$c = ['', '拾', '佰', '仟'];$d = ['万', '亿'];// 四舍五入 保留两位小数$num = sp_round($num, 2);// 反转字符串$num = strrev($num);// 小数if (($point = strpos($num, '.')) !== false) {if ($point == 2) {$str .= $b[0] . $a[$num[0]] . ($num[1] ? $b[1] : '') . $a[$num[1]]; // 角分} else {$str .= $b[1] . $a[$num[0]]; // 角}$num = substr($num, $point + 1);} else {$str .= $b[3]; // 整}$str .= $b[2]; // 元$is_pass = false; // 是否经过一位非零数字$no_zero = true; // 没有零$len = strlen($num); // 字符串长度// 第一位数字if ($num[0]) {$is_pass = true;$str .= $a[$num[0]];}// 第一位以后for ($i = 1; $i < $len; ++ $i) {// 处理万亿if (($mod = $i % 4) == 0) {$is_pass = false; // 是否经过一位非零数字$no_zero = true; // 没有零$div = intdiv($i, 4);$str .= str_repeat($d[1], intdiv($div, 2)); // 亿$str .= $div % 2 ? $d[0] : ''; // 万}if ($num[$i]) {$is_pass = true;$str .= $c[$mod] . $a[$num[$i]];} else {if ($is_pass && $no_zero) {$str .= $a[$num[$i]];$no_zero = false;}}}return mb_strrev($str); // 反转多字节字符串
}v(get_rmb('1004560007807005.123456'));
v(get_rmb('123456789012304560.99956'));

注:依赖  sp_round函数(对长数字字符串四舍五入)mb_strrev函数(反转多字节字符串),之前文章有

执行结果:


												

数字转人民币大写,PHP实现相关推荐

  1. .net 将数字转换为人民币大写

    程序中用到将数字转换为大写人民币,在网上找了一个方法,记录下来. using System.Text; using System.Text.RegularExpressions; ///<sum ...

  2. js 数字转人民币大写

    目前网上有许多的数字转人民币大写功能,但是在某些数字上就回出现错误, 比如501356,这个转换之后,有的会转换成 "伍拾万零壹仟叁佰伍拾陆" ,单位万和千紧密相连,中间是不需要 ...

  3. C#数字转人民币大写

    C#方法 废话不多说,直接上代码: /// <summary> /// 数字转换为大写人民币表示 /// </summary> /// <param name=" ...

  4. ORACLE数字转换人民币大写

    ORACLE 数字转换人民币大写 示例. 数字                    :183066999230.68 人民币大写        :壹仟捌佰参拾亿陆仟陆佰玖拾玖万玖仟贰佰参拾圆陆角捌分 ...

  5. php人民币函数,PHP数字转人民币大写函数

    PHP数字转人民币大写函数2018-04-23 09:59 如果你是一位财务人员,肯定遇到过一个问题,就是遇到一串数字,要将其写成大写的人民币,有时很容易搞错. 那么有没有什么方法可以准确的解决呢? ...

  6. 把数字转换为人民币大写(用于银行系统)

    大二是老师让做一个综合试验::用C++实现简易银行系统,其中用到在打印流水账时要求把金额转换为人民币大写...当时傻里吧唧的,,,随便拷贝了个同学的应付老师交了了事...前一段一个大二的弟兄向我提起银 ...

  7. 浮点数字转换为人民币大写字体

    新开博客,贴上一段平常时写的代码,权当记录和分享. 下面是代码块(有比较详细的注释,转换过程中需要注意的是0的处理): //浮点数转换为人民币大写字体 import java.util.Scanner ...

  8. sql 数字转人民币大写函数(两种方法)

    create function UpperRMB(@num numeric(14,2))returns @rmb table(亿 varchar(2),仟万 varchar(2),佰万 varchar ...

  9. oracle 数字转人民币大写函数

    oralce中用于将数据转换为人民币大写的函数.. function to_rmbdx(i_money in varchar2) return varchar2 is i       number; ...

  10. C#,数字转人民币大写方法

    using  System; namespace  Test {     /**//// <summary>     /// Rmb 的摘要说明.     /// </summary ...

最新文章

  1. python 检测文件或文件夹是否存在
  2. python network_python network(非常好)
  3. 从尾到头打印单向链表
  4. JDK8中ConcurrentHashMap源码解析
  5. 获取数组中连续相同的元素
  6. 劳心者、劳力者或CEO、CTO各得其所,足矣
  7. java axis2 教程_webservice的Axis2入门教程java版
  8. 立即表达式的多种写法与注意点以及in操作符的作用
  9. Jenkins-Pipeline 流水线发布
  10. Java Web学习总结(44)—— RESTful 架构和 RESTful API 设计总结
  11. NPOI Excel 单元格背景颜色对照表
  12. 2016年大数据发展趋势预测
  13. LTE解MIB块,LTE中PBCH过程
  14. odi12配置mysql_Oracle Data Integrator 12c 安装(ODI安装)
  15. 创新工场汪华:给早期创业者的44条建议
  16. c 朗读html,朗读《送杜少府之任蜀》
  17. 计算机同步与异步的概念,同步与异步到底是什么???
  18. VUE+ECharts 制作饼图
  19. java判断白天黑夜,获取Java中的所有夜晚时间
  20. php不能使用class,php – 致命错误:不能使用stdClass类型的对象作为数组

热门文章

  1. ADSL拨号上网和宽带上网有什么区别?
  2. 网购火车票全攻略(新手+进阶+高手级)
  3. office2016激活后仍然出现输入激活码
  4. Python基础(8)字符串及常用操作
  5. html背景音乐自动播放embed,HTML插入背景音乐方法【全】
  6. Python实例——国际标准书号(ISBN)的计算
  7. 职能式管理和流程式管理
  8. oracle报1653解决办法,“IMP-00058: 遇到 ORACLE 错误 1653”,如何解决?
  9. 关于候鸟捕杀——人类愚蠢之至
  10. 2022年01月最新 | 全国网络安全等级测评与检测评估机构目录,新增6家,共计224家...