PHP 数字转大写
<?php
header("content-type:text/html;charset=utf-8");
function numToRmb($num){
$rmbNum = ['零','壹','贰','叁','肆','伍','陆','柒','捌','玖'];
$rmbUnit = ['分','角','元','拾','佰','仟','万','拾','佰','仟','亿','拾','佰','仟','万','拾','佰','仟'];
//数字预处理
if($num == '' || $num == 0){
return '请输入一个大于0的金额,谢谢!';
}else {
$num = number_format($num, 2, '.', '')*100;
}
if (strlen(number_format($num, 0, '', ''))>18) {
return '输入的金额不得超过千万亿!';
}
//开始数字转换人民币大写
$out1 = 0;
$numRmb = '';
$unit = '';
$rmb = '';
for ($out1 = 0 ; $out1 < strlen(number_format($num, 0, '', '')) ; $out1++) {
$numRmb = $rmbNum[substr(number_format($num, 0, '', ''), $out1, 1)];
$unit = $rmbUnit[strlen(number_format($num, 0, '', ''))-$out1-1];
$rmb = $rmb.$numRmb.$unit;
}
// 将大写人民币中的零进行调整
$rmbStrlen = strlen($rmb);
for ($out2=0; $out2 < $rmbStrlen; $out2=$out2+3) {
$tempRmb = substr($rmb, $out2, 6);
if ($tempRmb=='零元'||$tempRmb=='零万'||$tempRmb=='零亿') {
$left = substr($rmb, 0, $out2);
$right = substr($rmb, $out2+3);
$rmb = $left.$right;
$out2 = $out2 - 3;
$rmbStrlen = $rmbStrlen - 3;
}elseif ($tempRmb=='零拾'||$tempRmb=='零佰'||$tempRmb=='零仟') {
$left = substr($rmb, 0, $out2+3);
$right = substr($rmb, $out2+6);
$rmb = $left.$right;
$out2 = $out2 - 3;
$rmbStrlen = $rmbStrlen - 3;
}elseif ($tempRmb=='零分'||$tempRmb=='零角') {
$left = substr($rmb, 0, $out2);
$right = substr($rmb, $out2+6);
$rmb = $left.$right;
$out2 = $out2 - 6;
$rmbStrlen = $rmbStrlen - 6;
}
if ($tempRmb=='零零') {
$left = substr($rmb, 0, $out2);
$right = substr($rmb, $out2+3);
$rmb = $left.$right;
$out2 = $out2 - 3;
$rmbStrlen = $rmbStrlen - 3;
}
if(substr($rmb,strlen($rmb)-3)=='元') {
$rmb = $rmb.'整';
}
}
return $rmb;
}
echo numToRmb($_POST['num']);
?>
PHP 数字转大写的更多相关文章
- 【JS】数字转大写中文
原文参考 逛到一道面试题,数字转大写中文的,搜索学习并记录于此. //自动转换数字金额为大小写中文字符,返回大小写中文字符串,最大处理到999兆 function changeMoneyToChine ...
- 将金额数字转换为大写汉字的js函数
//将金额数字转换为大写汉字的函数 function convertCurrency(money) { //汉字的数字 var cnNums = new Array('零', '壹', '贰', '叁 ...
- PHP数字转大写
最近在研究算法,发现了一个数字转大写的算法挺有意思,分享给大家看看: function get_amount($num){ $c1 = "零壹贰叁肆伍陆柒捌玖"; ...
- PHP金额工具类之将阿利伯数字转换为大写中文数字
1.将阿拉伯数字转换为中文大写数字 <?php namespace core\components; class PriceHelper extends \yii\base\Component{ ...
- python 几种方法实现随机生成8位同时包含数字、大写字符、小写字符密码的小程序
python 实现随机生成包8位包含大写字母.小写字母和数字的密码的程序.要求:1用户输入多少次就生成多少条密码,2要求密码必须同时包含大写字母.小写字母和数字,长度8位,不能重复代码如下: impo ...
- php 生成随机字符串,数字,大写字母,小写字母,特殊字符可以随意组合
* 生成随机字符串* @param int $length 要生成的随机字符串长度* @param string $type 随机码类型:0,数字+大小写字母:1,数字:2, ...
- Delphi 实现数字转大写
从网上找的一段代码 /// <summary> /// 小写转大写 /// </summary> /// <param name="mmje"> ...
- js将人民币数字转大写
function numberToUpper(money) { var cnNums = new Array("零", "壹", "贰", ...
- java 金额数字转换大写算法
根据人民币大写金额规范,转换有几点要注意的: 阿拉伯数字中间有"0"时,中文大写金额中间可以只写一个"零"字.如¥1,409.50,应写成人民币壹仟肆佰零玖圆伍 ...
随机推荐
- Python 安装 MaxMind GeoLite City
1.先安装 geoip c library geoip c library >= 1.4.6 installed on your machine. >= 1.4.6 installed ...
- Redis快速入门及实现
redis的概念 (1)Redis的优点 以下是Redis的一些优点. 异常快 - Redis非常快,每秒可执行大约110000次的设置(SET)操作,每秒大约可执行81000次的读取/获取(GET) ...
- GDB调试,转载一位大牛的东西
http://www.wuzesheng.com/?p=1327 手把手教你玩转GDB(一)——牛刀小试:启动GDB开始调试 写在最前面:GDB是unix相关操作系统中C/C++程序开发必不可少的工具 ...
- linux中使用vi 打开文件时,能显示行号
方法一: 1.显示当前行行号,在VI的命令模式下输入 :nu 2.显示所有行号,在VI的命令模式下输入 :set nu方法二: 使用vi编辑~/.vimrc文件,在该文件中加入一行" ...
- urllib基本使用-Handler和自定义的opener()
""" 基本的urlopen()方法不支持代理.cookie等其他的HTTP/HTTPS高级功能.所以要支持这些功能: 使用相关的 Handler处理器 来创建特定功能的 ...
- python3 - 生成器genarator
在Python中,这种一边循环一边计算的机制,称为生成器:generator. 生成器保存的是算法,每次调用 next() ,就计算出 下一个元素的值,直到计算到最后一个元素,没有更多的元素时,抛出 ...
- 在Windows 7 (SP1)上安装Visual Studio 2015
背景说明:最近重装了Windows 7 系统,那就顺手装个Visual Studio 2015吧,没想到一案装就报错(具体没截图了).只有Windows8 或是Windows 10才能装 2015?答 ...
- SharePoint服务器端对象模型 之 访问文件和文件夹(Part 3)
(三)遍历 文件系统的遍历是指按照文件夹的层级结构遍历文档库.列表的文件夹和列表条目.遍历主要有三种方式:(1)直接使用文件系统对象模型进行遍历:(2)使用SPDocumentLibrary进行遍历: ...
- android菜鸟学习笔记30----Android使用百度地图API(一)准备工作及在应用中显示地图
1.准备工作: 百度地图API是免费开放的,但是需要申请API Key: 1)先注册一个百度开发者帐号 2)进入百度开放服务平台http://developer.baidu.com/ 3)进入LBS云 ...
- Error: member names cannot be the same as their enclosing type
在编译的时候会遇到如下问题:member names cannot be the same as their enclosing type 原因:方法名和类名不能一样,如果一样就是一个构造函数.而构造 ...