PHP数字金额转换成中文大写显示


Posted in PHP onJanuary 05, 2019

整个功能其实不难,只是还算挺实用,所以记一下哈,其他编程语言转换一下也是能可以的!

思路:把传过来的金额转换成整数和小数两部分,再对其分别进行转换处理

代码附上:

function moneyToString($num)
{
  $digits = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
  $radices =['', '拾', '佰', '仟', '万', '亿'];
  $bigRadices = ['', '万', '亿'];
  $decimals = ['角', '分'];
  $cn_dollar = '元';
  $cn_integer = '整';
  $num_arr = explode('.', $num);
  $int_str = $num_arr[0] ?? '';
  $float_str = $num_arr[1] ?? '';
  $outputCharacters = '';
  if ($int_str) {
    $int_len = strlen($int_str);
    $zeroCount = 0;
    for ($i = 0; $i < $int_len; $i++) {
      $p = $int_len - $i - 1;
      $d = substr($int_str, $i, 1);
      $quotient = $p / 4;
      $modulus = $p % 4;
      if ($d == "0") {
        $zeroCount++;
      }
      else {
        if ($zeroCount > 0)
        {
          $outputCharacters += $digits[0];
        }
        $zeroCount = 0;
        $outputCharacters .= $digits[$d] . $radices[$modulus];
      }
      if ($modulus == 0 && $zeroCount < 4) {
        $outputCharacters .= $bigRadices[$quotient];
        $zeroCount = 0;
      }
    }
    $outputCharacters .= $cn_dollar;
  }
  if ($float_str) {
    $float_len = strlen($float_str);
    for ($i = 0; $i < $float_len; $i++) {
      $d = substr($float_str, $i, 1);
      if ($d != "0") {
        $outputCharacters .= $digits[$d] . $decimals[$i];
      }
    }
  }
  if ($outputCharacters == "") {
    $outputCharacters = $digits[0] . $cn_dollar;
  }
  if ($float_str) {
    $outputCharacters .= $cn_integer;
  }
  return $outputCharacters;
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

PHP 相关文章推荐
php Sql Server连接失败问题及解决办法
Aug 07 PHP
php输出xml格式字符串(用的这个)
Jul 12 PHP
PHP实现根据浏览器跳转不同语言页面代码
Aug 02 PHP
迅速确定php多维数组的深度的方法
Jan 07 PHP
PHP两种去掉数组重复值的方法比较
Jun 19 PHP
php实现utf-8转unicode函数分享
Jan 06 PHP
PHP之正则表达式捕获组与非捕获组(详解)
Jul 29 PHP
Symfony控制层深入详解
Mar 17 PHP
ThinkPHP实现分页功能
Apr 28 PHP
PHP多进程编程之僵尸进程问题的理解
Oct 15 PHP
PHP解析url并得到url参数方法总结
Oct 11 PHP
Laravel Eloquent ORM 实现查询表中指定的字段
Oct 17 PHP
PHP yield关键字功能与用法分析
Jan 03 #PHP
PHP获取对象属性的三种方法实例分析
Jan 03 #PHP
PHP获取HTTP body内容的方法
Dec 31 #PHP
php两点地理坐标距离的计算方法
Dec 29 #PHP
php如何计算两坐标点之间的距离
Dec 29 #PHP
PHP命名空间简单用法示例
Dec 28 #PHP
PHP实现函数内修改外部变量值的方法示例
Dec 28 #PHP
You might like
PHP截取中文字符串的问题
2006/07/12 PHP
php页面跳转代码 输入网址跳转到你定义的页面
2013/03/28 PHP
深入php-fpm的两种进程管理模式详解
2013/06/03 PHP
thinkPHP简单遍历数组方法分析
2016/05/16 PHP
解决PHP使用CURL发送GET请求时传递参数的问题
2019/10/11 PHP
JavaScript修改css样式style
2008/04/15 Javascript
javascript 简练的几个函数
2009/08/29 Javascript
JQuery小知识
2010/10/15 Javascript
超轻量级的基于jquery的三级展开列表
2011/04/26 Javascript
javascript学习笔记(十七) 检测浏览器插件代码
2012/06/20 Javascript
Jquery显示和隐藏元素或设为只读(含Ligerui的控件禁用,实例说明介绍)
2013/07/09 Javascript
js 时间格式与时间戳的相互转换示例代码
2013/12/25 Javascript
谷歌浏览器调试JavaScript小技巧
2014/12/29 Javascript
fastclick插件导致日期(input[type=&quot;date&quot;])控件无法被触发该如何解决
2015/11/09 Javascript
jQuery为动态生成的select元素添加事件的方法
2016/08/29 Javascript
Javascript中常见的逻辑题和解决方法
2016/09/17 Javascript
详解VUE中v-bind的基本用法
2017/07/13 Javascript
JavaScript数据结构之优先队列与循环队列实例详解
2017/10/27 Javascript
jquery ajaxfileupload异步上传插件
2017/11/21 jQuery
Vue.js中 v-model 指令的修饰符详解
2018/12/03 Javascript
关于自定义Egg.js的请求级别日志详解
2018/12/12 Javascript
基于jQuery实现可编辑的表格
2019/12/11 jQuery
[03:59]DOTA2英雄梦之声_第07期_水晶室女
2014/06/23 DOTA
python解析xml文件实例分享
2013/12/04 Python
Python实现比较扑克牌大小程序代码示例
2017/12/06 Python
Python爬虫包BeautifulSoup简介与安装(一)
2018/06/17 Python
python 动态迁移solr数据过程解析
2019/09/04 Python
python实现交并比IOU教程
2020/04/16 Python
使用Keras实现Tensor的相乘和相加代码
2020/06/18 Python
失业者真诚求职信范文
2013/12/25 职场文书
大学同学聚会邀请函
2014/01/19 职场文书
爱祖国演讲稿
2014/05/04 职场文书
烈士陵园扫墓感想
2015/08/07 职场文书
《藏戏》教学反思
2016/02/23 职场文书
Python序列化与反序列化相关知识总结
2021/06/08 Python
Python+Matplotlib+LaTeX玩转数学公式
2022/02/24 Python