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调用Java对象的方法
Oct 09 PHP
php adodb连接不同数据库
Mar 19 PHP
一个PHP缓存类代码(附详细说明)
Jun 09 PHP
PHP中如何定义和使用常量
Feb 28 PHP
php发送post请求的三种方法
Feb 11 PHP
常见php数据文件缓存类汇总
Dec 05 PHP
Laravel 5.0 发布 新版本特性详解
Feb 10 PHP
详解PHP中的PDO类
Jul 06 PHP
PHP浮点数的一个常见问题
Mar 10 PHP
如何打开php的gd2库
Feb 09 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
Feb 07 PHP
Laravel 队列使用的实现
Jan 08 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
使用数据库保存session的方法
2006/10/09 PHP
翻译整理的jQuery使用查询手册
2007/03/07 Javascript
YUI 读码日记之 YAHOO.lang.is*
2008/03/22 Javascript
jQuery TextBox自动完成条
2009/07/22 Javascript
js控制表单奇偶行样式的简单方法
2013/07/31 Javascript
jQuery中ajax的post()方法用法实例
2014/12/26 Javascript
javascript事件模型实例分析
2015/01/30 Javascript
jquery中val()方法是从最后一个选项往前读取的
2015/09/06 Javascript
基于JQuery实现仿网易邮箱全屏动感滚动插件fullPage
2015/09/20 Javascript
基于jQuery插件实现点击小图显示大图效果
2016/05/11 Javascript
基于jQuery实现页面搜索功能
2020/03/26 Javascript
DOM事件探秘篇
2017/02/15 Javascript
javascript 开发之百度地图使用到的js函数整理
2017/05/19 Javascript
Angular 2.x学习教程之结构指令详解
2017/05/25 Javascript
AngularJS实现controller控制器间共享数据的方法示例
2017/10/30 Javascript
详解vue项目的构建,打包,发布全过程
2017/11/23 Javascript
vue scroller返回页面记住滚动位置的实例代码
2018/01/29 Javascript
Vue props中Object和Array设置默认值操作
2020/07/30 Javascript
vue路由切换时取消之前的所有请求操作
2020/09/01 Javascript
[02:59]DOTA2完美大师赛主赛事第三日精彩集锦
2017/11/25 DOTA
压缩包密码破解示例分享(类似典破解)
2014/01/17 Python
Python的Tornado框架实现图片上传及图片大小修改功能
2016/06/30 Python
使用pycharm生成代码模板的实例
2018/05/23 Python
python GUI库图形界面开发之PyQt5布局控件QGridLayout详细使用方法与实例
2020/03/06 Python
html5 跨文档消息传输示例探讨
2013/04/01 HTML / CSS
程序员经常用到的UNIX命令
2015/04/13 面试题
实习生个人找工作的自我评价
2013/10/30 职场文书
社会实践心得体会
2014/01/03 职场文书
2014的自我评价
2014/01/13 职场文书
残疾人创业典型事迹
2014/02/01 职场文书
12月红领巾广播稿
2014/02/13 职场文书
骨干教师个人总结
2015/02/11 职场文书
2015年中学校长工作总结
2015/05/19 职场文书
遗嘱范文
2015/08/07 职场文书
2015新员工工作总结范文
2015/10/15 职场文书
Python如何利用正则表达式爬取网页信息及图片
2021/04/17 Python