文档章节

【面试题】小数转换为人民币大写形式,PHP实现。

myx75
 myx75
发布于 2016/04/16 22:23
字数 235
阅读 18
收藏 0

前段时间面试,有个编程题目是将小数转换为人民币大写形式,最近用PHP多,就写一段,全当记个日志吧。未完待续。

<?php

$newline = '<br/>';
$RMB = array('', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');
$RMBUnit = array('圆', '拾', '百', '千', '万', '拾', '百', '千', '亿',
                 '拾', '百', '千', '万', '拾', '百', '千');

function randomFloat($min = 0, $max = 1) {
    return $min + mt_rand() / mt_getrandmax() * ($max - $min);
}

function change2RMB($input) {
    global $newline, $RMB, $RMBUnit;
    
    $inputStr = strval(number_format($input, 2));
    $inputStr = str_replace(',', '', $inputStr);
    
    echo $inputStr . $newline;
    $inputExplode = explode('.', $inputStr, 2);
    
    $inputIntStr = $inputExplode[0];
    $inputIntLen = strlen($inputIntStr);
//     echo $inputIntStr . $newline . $inputIntLen . $newline;
    if ($inputIntLen > 16) {
        return '你的钱已经超过1亿亿,请赞助作者完善此程序,感谢!';
    }
    
    for ($i = 0; $i < $inputIntLen; $i++) {
        $j = $inputIntLen - $i - 1;
        $number = $RMB[$inputIntStr[$j]];
        if ($number == '') {
            if ($i != 0 && $i != 4 && $i !=8)
                continue;
        }
        
        $resultIntStr = $number . $RMBUnit[$i] . $resultIntStr;
    }
//     echo $resultIntStr . $newline;
    
    $inputFloatStr = $inputExplode[1];
    if ($inputFloatStr[0] != 0) {
        $resultFloatStr = $RMB[$inputFloatStr[0]] . '角';
    }
    
    if ($inputFloatStr[1] != 0) {
        $resultFloatStr .=$RMB[$inputFloatStr[1]] . '分';
    }
    
    return $resultIntStr . $resultFloatStr;
}


$input = randomFloat(0, 10000000000000000);
// $input = 3000000000070.913;

$result = change2RMB($input);
echo $input . ' => ' . $result;


© 著作权归作者所有

共有 人打赏支持
myx75
粉丝 0
博文 3
码字总数 535
作品 0
南宁
Java学习笔记---字符串操作(人民币大写转换的实现)

向开始学习语言的的同学们推荐下,如果你想学习语言的某个特性,比方说数据库编程,或者网络编程,最好找一个实用的例子,然后不懂的去翻书,去查资料,这样目的性就很强了,个人感觉比对着语...

晨曦之光
2012/05/23
176
0
[算法题] 人民币大小写转换(阿拉伯数字和汉字转换)

在一次面试中遇到一个有意思的小算法题:要求将阿拉伯数字转为汉字显示出来(包含单位)。 当时虽然实现出来,但是代码写的有点凌乱。所以回家后,重新整理了一下。 这个算法有几个小的注意点:...

guitar_zp
2014/07/03
0
0
Swift3.0语言教程字符串大小写转化

Swift3.0语言教程字符串大小写转化 Swift3.0语言教程字符串大小写转化,在字符串中,字符串的格式是很重要的,例如首字母大写,全部大写以及全部小写等。当字符串中字符很多时,通过人为一个...

大学霸
2016/11/16
2
0
golang实现人民币小写转大写

使用golang的正则表达式实现人民币小写转大写,代码如下: 上面代码执行结果如下(可以使用ConvertNumToCny函数输入任何转换金额作为参数): 我们对于大金额的数据经常需要数位数而降低了我...

知止software
2016/08/21
33
0
Java编程那些事儿——计算机软件基本概念与进制的概念

Java编程那些事儿——计算机软件基本概念   Java, Java培训, Java基础, Java学习, Java教程   第一章 计算机基础   本部分主要介绍计算机相关的知识,重点介绍和软件编程相关的基础知识...

超人学院
2016/07/28
11
0

没有更多内容

加载失败,请刷新页面

加载更多

软件测试工具书籍与面试题汇总下载(持续更新)

简介 本文是https://github.com/china-testing/python-api-tesing/blob/master/books.md 的节选。 欢迎转载,转载请附带此简介,谢谢! 试题 软件测试综合面试题(高级测试)-试题.pdf 软件测试...

python测试开发人工智能安全
13分钟前
0
0
java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection 解决

有个项目使用的log4j进行日志记录的,同时也是用log4j中的数据库配置直接把相应级别的日志直接插入oracle。 在把项目部署的另一个内网环境时候,把项目的其他配置都改了,唯独log4j中的数据库...

哥本哈根的小哥
23分钟前
0
0
耗时 2 年,用 8.5 万块乐高积木最牛复刻 Apple Park

简评:国外大佬复刻 Apple Park,看了一下细节,确实厉害!只有你想不到,没有乐高拼不起来的,有没有乐高大神挑战一下? 苹果公园以各种各样的方式鼓舞人心,让人感兴趣。从建筑、可持续性和...

极光推送
25分钟前
0
0
记一次查找Hdfs磁盘占用空间比实际存储文件大4倍的原因

在一次主备namenode发生切换后,重启datanode节点,发现磁盘空间很大,想清理一下磁盘, 通过命令Hdfs dfs -du -h --max-depth=1 / 发现实际文件的大小只有8g,通过du -h --max-depth=1 /ha...

PageYi
51分钟前
4
0
阿里云推荐引擎使用教程

产品概述: 推荐引擎(Recommendation Engine,以下简称RecEng,特指阿里云推荐引擎)是在阿里云计算环境下建立的一套推荐服务框架,目标是让广大中小互联网企业能够在这套框架上快速的搭建满...

mcy0425
52分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部