zoukankan      html  css  js  c++  java
  • PHP数字转大写

    最近在研究算法,发现了一个数字转大写的算法挺有意思,分享给大家看看:

    function get_amount($num){
            $c1 = "零壹贰叁肆伍陆柒捌玖";
            $c2 = "分角元拾佰仟万拾佰仟亿";
            $num = round($num, 2);
            $num = $num * 100;
            if (strlen($num) > 10) {
                return "数据太长,没有这么大的钱吧,检查下";
            }
            $i = 0;
            $c = "";
            while (1) {
                if ($i == 0) {
                    $n = substr($num, strlen($num)-1, 1);
                } else {
                    $n = $num % 10;
                }
                $p1 = substr($c1, 3 * $n, 3);
                $p2 = substr($c2, 3 * $i, 3);
                if ($n != '0' || ($n == '0' && ($p2 == '亿' || $p2 == '万' || $p2 == '元'))) {
                    $c = $p1 . $p2 . $c;
                } else {
                    $c = $p1 . $c;
                }
                $i = $i + 1;
                $num = $num / 10;
                $num = (int)$num;
                if ($num == 0) {
                    break;
                }
            }
            $j = 0;
            $slen = strlen($c);
            while ($j < $slen) {
                $m = substr($c, $j, 6);
                if ($m == '零元' || $m == '零万' || $m == '零亿' || $m == '零零') {
                    $left = substr($c, 0, $j);
                    $right = substr($c, $j + 3);
                    $c = $left . $right;
                    $j = $j-3;
                    $slen = $slen-3;
                }
                $j = $j + 3;
            }
            return $c;
            if (substr($c, strlen($c)-3, 3) == '零') {
                $c = substr($c, 0, strlen($c)-3);
            }
            if (empty($c)) {
                return "零元整";
            }else{
                return $c . "整";
            }
        }

  • 相关阅读:
    hdu6229 Wandering Robots 2017沈阳区域赛M题 思维加map
    hdu6223 Infinite Fraction Path 2017沈阳区域赛G题 bfs加剪枝(好题)
    hdu6438 Buy and Resell 买卖物品 ccpc网络赛 贪心
    hdu6441 Find Integer 求勾股数 费马大定理
    bzoj 1176 Mokia
    luogu 3415 祭坛
    bzoj 1010 玩具装箱
    bzoj 3312 No Change
    luogu 3383【模板】线性筛素数
    bzoj 1067 降雨量
  • 原文地址:https://www.cnblogs.com/beili/p/11937243.html
Copyright © 2011-2022 走看看