/*
* 数字金额转换成中文大写金额的函数
* String Int $num 要转换的小写数字或小写字符串
* return 大写数字
*/
function num_to_rmb($num){
  $c1 = "零壹贰叁肆伍陆柒捌玖";
  $c2 = "分角元拾佰仟万拾佰仟亿";
  //精确到分后面就不要了,所以只留两个小数位
  $num = round($num, );
  //将数字转化为整数
  $num = $num * ;
  if (strlen($num) > ) {
    return "金额太大,请检查";
  }
  $i = ;
  $c = "";
  while () {
    if ($i == ) {
      //获取最后一位数字
      $n = substr($num, strlen($num)-, );
    } else {
      $n = $num % ;
    }
    //每次将最后一位数字转化为中文
    $p1 = substr($c1, * $n, );
    $p2 = substr($c2, * $i, );
    if ($n != '' || ($n == '' && ($p2 == '亿' || $p2 == '万' || $p2 == '元'))) {
      $c = $p1 . $p2 . $c;
    } else {
      $c = $p1 . $c;
    }
    $i = $i + ;
    //去掉数字最后一位了
    $num = $num / ;
    $num = (int)$num;
    //结束循环
    if ($num == ) {
      break;
    }
  }
  $j = ;
  $slen = strlen($c);
  while ($j < $slen) {
    //utf8一个汉字相当3个字符
    $m = substr($c, $j, );
    //处理数字中很多0的情况,每次循环去掉一个汉字“零”
    if ($m == '零元' || $m == '零万' || $m == '零亿' || $m == '零零') {
      $left = substr($c, , $j);
      $right = substr($c, $j + );
      $c = $left . $right;
      $j = $j-;
      $slen = $slen-;
    }
    $j = $j + ;
  }
  //这个是为了去掉类似23.0中最后一个“零”字
  if (substr($c, strlen($c)-, ) == '零') {
    $c = substr($c, , strlen($c)-);
  }
  //将处理的汉字加上“整”
  if (empty($c)) {
    return "零元整";
  }else{
    return $c . "整";
  }
}

 $money = 68000000.00;
 echo num_to_rmb($money); //陆仟捌佰万元整

PHP金钱数字转金钱大写的更多相关文章

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

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

  2. php 把数字转化为大写中文

    PHP 数字转大写中文 PHP入门小菜鸟一枚.下午要求写一个把数字转成大写中文的脚本,百度了一波,几十个博客和网站都是用的那四个代码,第一个运行不了,第二个有问题,不合要求,第三个第四个太长,懒得看, ...

  3. 数字转人民币大写(SQL SERVER)

    --数字转人民币大写NumToRMB ---新建方法create  FUNCTION dbo.NumToRMB (@num numeric(14,5))   RETURNS varchar(100) ...

  4. 前端js 判断输入的必须是数字,判断金钱

    //输入的必须是数字 $(".xzjl").on("keyup", ".num", function () { var v = $(this ...

  5. 分享一下 常用的转换方法(例如:数字转金钱,文本与html互转等)

    public sealed class SAFCFormater { /// <summary> /// 文本格式到HTML /// </summary> /// <pa ...

  6. php 处理数字为金钱格式

    number_format(需要转换的数字,保留小数个数,小数点符号,每三位的分隔符) echo number_format("1000000")."<br> ...

  7. 【PHP】金额数字转换成大写形式

    <?php /*将数字金额转成大写*/ function num_to_upper($num) { $d = array('零','壹','贰','叁','肆','伍','陆','柒','捌', ...

  8. C# 数字转换成大写

    /// <summary> /// 数字转大写 /// </summary> /// <param name="Num">数字</para ...

  9. Javascript作业—数字转化为大写

    开始学javascript,写作业. <script type="text/javascript"> function toChinese(money){ var ch ...

随机推荐

  1. P1962 斐波那契数列-题解(矩阵乘法扩展)

    https://www.luogu.org/problemnew/show/P1962(题目传送) n的范围很大,显然用普通O(N)的递推求F(n)铁定超时了.这里介绍一种用矩阵快速幂实现的解法: 首 ...

  2. [SDOI2013]森林 主席树+启发式合并

    这题的想法真的很妙啊. 看到题的第一眼,我先想到树链剖分,并把\(DFS\)序当成一段区间上主席树.但是会发现在询问的时候,可能会非常复杂,因为你需要把路径拆成很多条轻链和重链,它们还不一定连续,很难 ...

  3. .NET框架 - NETCORE + API + EF + MYSQL

    .NET框架 - NETCORE + API + EFCORE + MYSQL 1. 新建项目: 本文中使用 框架 .netcore2.2 . 2. 生成项目框架 3 安装MYSQL插件 点击“工具” ...

  4. SimMechanics/Second Generation倒立摆模型建立及初步仿真学习

    笔者最近捣鼓Simulink,发现MATLAB的仿真模块真的十分强大,以前只是在命令窗口敲点代码,直到不小心敲入simulink,就一发不可收拾.话说simulink的模块化建模确实方便,只要拖拽框框 ...

  5. 移动端返回上一页,刚需!document.referrer 详解

    返回上一页,在PC端我们可以使用:history.go(-1)或者history.back(),可以正常返回第一层.这样,我们不需要上一页的 url 具体是什么,只要使用 history 一般都没啥问 ...

  6. THUWC2019 GG记

    所以要什么时候才不会出现像这样的滚粗记呢? Day-?~Day-4 我也不清楚具体干了什么 不过学了很多东西,至少相对于去年还是个小菜鸡,今年已经变成大菜鸡了 Day-3~Day-1 几乎就是复习前面 ...

  7. Ubuntu通过ADB连接手机

    参考 ubuntu14.04 下android studio连接手机 安装 adb $sudo apt install adb $sudo lsusb 得到ID为 Bus Device : ID 12 ...

  8. 20164305徐广皓 - Exp1 PC平台逆向破解(5)M

    1.逆向及Bof基础实践说明        1.1实践目标 实践对象:pwn1的linux可执行文件 实践目的:使程序执行另一个代码(ShellCode) 实践内容: 手工修改可执行文件,改变程序执行 ...

  9. java hashmap的一些分析记录

    最近朋友去面试被问了些hashmap相关的问题,hashmap的初始容量啊,什么操作最耗时等,之前看过hashmap的源码,正好这里也在总结下. 主要围绕下面几个点: HashMap是由数组+链表(j ...

  10. Interface Comparable<T>

    Interface Comparable<T> : 该接口对实现它的每个类的对象强加一个整体排序. 这个排序被称为类的自然排序 ,类的compareTo方法被称为其自然比较方法 . 参数 ...