将数字小写转为大写,这原来是一个类,我改写为一个函数.修复和增加了其中一些在实际工作中需要的功能.使其更加全面.100%可用.

function change_num($num)

{

$d = array('零','壹','贰','叁','肆','伍','陆','柒','捌','玖');

$e =

array('元','拾','佰','仟','万','拾万','佰万','仟万','亿','拾亿','佰亿','仟亿','万亿');

$p = array('分','角');

$zheng='整'; //追加"整"字

$final = array(); //结果

$inwan=0; //是否有万

$inyi=0; //是否有亿

$len_pointdigit=0; //小数点后长度

$y=0;

if($c = strpos($num, '.'))

//有小数点,$c为小数点前有几位数

{ $len_pointdigit = strlen($num)-strpos($num, '.')-1; //

判断小数点后有几位数

if($c>13) //简单的错误处理

{

echo "数额太大,已经超出万亿.";

die();

}

elseif($len_pointdigit>2)

//$len_pointdigit小数点后有几位

{

echo "小数点后只支持2位.";

die();

}

}

else //无小数点

{

$c = strlen($num);

$zheng = '整';

}

for($i=0;$i

//处理整数部分

{

$bit_num = substr($num, $i, 1); //逐字读取

左->右

if($bit_num!=0 || substr($num, $i+1, 1)!=0) //当前是零 下一位还是零的话

就不显示

@$low2chinses = $low2chinses.$d[$bit_num];

if($bit_num || $i==$c-1) @$low2chinses = $low2chinses.$e[$c-$i-1];

}

for($j=$len_pointdigit;

$j>=1; $j--) //处理小数部分

{

$point_num = substr($num, strlen($num)-$j, 1); //逐字读取

左->右

if($point_num != 0)

@$low2chinses = $low2chinses.$d[$point_num].$p[$j-1];

//if(substr($num, strlen($num)-2, 1)==0

&& substr($num, strlen($num)-1,

1)==0) //小数点后两位都是0

}

$chinses =

str_split($low2chinses,2); //字符串转换成数组

//print_r($chinses);

for($x=sizeof($chinses)-1;$x>=0;$x--)

//过滤无效的信息

{

if($inwan==0&&$chinses[$x]==$e[4])

//过滤重复的"万"

{

$final[$y++] = $chinses[$x];

$inwan=1;

}

if($inyi==0&&$chinses[$x]==$e[8])

//过滤重复的"亿"

{

$final[$y++] = $chinses[$x];

$inyi=1;

$inwan=0;

}

if($chinses[$x]!=$e[4]&&$chinses[$x]!=$e[8])

//进行整理,将最后的值赋予$final数组

$final[$y++] = $chinses[$x];

}

$newstring=(array_reverse($final));

//$final为倒数组,$newstring为正常可以使用的数组

$nstring=join($newstring);

//数组变成字符串

if(substr($num,-2,1)==0

&&

substr($num,-1)<>0) //判断原金额角位为0 ?

分位不为0 ?

{ $nstring=substr($nstring,0,(strlen($nstring)-4))."零".substr($nstring,-4,4);

//这样加一个零字

}

$fen="分";

$fj=substr_count($nstring, $fen); //如果没有查到分这个字

return

$nstring=($fj==0)?$nstring.$zheng:$nstring; //就将"整"加到后面

}

?>

php 将数字转为大写,将数字小写转为大写 php相关推荐

  1. java人民币数字转大写汉字(小写转为大写).java

    对原有代码的优化,更简单易懂 java--人民币小写(金额)转为大写(金额转换)_CY_99的博客-CSDN博客_实数小写金额转大写pta 1,实现思路 因为汉语读法的特殊性把数字通过四位进行分割,因 ...

  2. 小写大写转换_小写到大写转换器JavaScript工具| 网络应用项目

    小写大写转换 Hi! At times, beginners always find it hard getting the application of the theory they learn ...

  3. oracle sql 转小写转大写,OracleSQL金额小写转大写函数

    原文链接:http://www.cnblogs.com/Ira_Young/archive/2009/11/11/1601168.html 无 Create Or Replace Function M ...

  4. c语言制作小数钱变大写,金钱数目小写变大写(C语言版)

    #include main(){ double r,y; int x, m,n,j,i,k,l,flag=0; char *str1[10]={"零","壹", ...

  5. 小写转大写,大写转小写,数字不显示

    C语言 小写转大写,大写转小写,数字不显示 ctype.h 中的isalpha函数,判断字符ch是否为英文字母,若为英文字母,真, 返回非0.小写字母 返回1; 大写字母返回 2, 若不是字母, 返回 ...

  6. excel小写变大写技巧

    我们使用excel表格技巧来小写变大写,一般分为将字母小写变大写,另外一种是将数字小写变大写.对Excel感兴趣的朋友可加Excel学习交流群:284029260 下面分别介绍这两种情况: excel ...

  7. Java黑皮书课后题第4章:*4.15(电话键盘)电话上的国际标准字母/数字映射如下所示。编写程序,提示用户输入一个小写或大写字母,然后显示对应数字。对于非字母输入,提示非法输入

    *4.15(电话键盘)电话上的国际标准字母/数字映射如下所示.编写程序,提示用户输入一个小写或大写字母,然后显示对应数字.对于非字母输入,提示非法输入 题目 题目概述 运行示例 破题 代码 题目 题目 ...

  8. 正则表达式:密码中至少包含大写字母、小写字母、数字、特殊字符等字符中的2种或3种

    目录 前言 先行断言 是否有那么一个开始符号,它后面的字符中包含小写字母(a-z) 正向否定查找 是否有那么一个开始符号,它后面不全是小写字母(a-z) 密码中只包含字母且长度在8-16之间 密码中同 ...

  9. 实现输入一个字符串,分别将大写字母、小写字母、数字、其他字符存到列表里面并且输出列表

    1.实现输入一个字符串,分别将大写字母.小写字母.数字.其他字符存到列表里面并且输出列表 capital = [] lowercase = [] number = [] character = [] ...

最新文章

  1. 交换变量和String类初始化:JAVA入门基础
  2. nginx的配置和优化(隐藏版本号、gzip、expires、防盗链......等)
  3. 防止标题或者特定内容长度溢出wordcut
  4. IE8的parseInt
  5. BeanUtils组件
  6. php 开源建站工具 -- 资料收集
  7. 【hue】 hue+sentry界面没有添加角色的按钮
  8. Matlab Tricks(十五) —— 圆的正确画法
  9. [转载] 字符串的startsWith和endWith方法
  10. 使用Eclipse统计自己项目程序代码量【实测可用】
  11. python设计查询余额程序_Python 小案例实战 —— 简易银行存取款查询系统
  12. openlayers 地图源
  13. 转:NO.523 Aidan HawkenCarina Round - Walking Blind
  14. mac如何查看IP地址,mac怎么查看IP地址
  15. js为什么设置为单线程,怎么实现多线程
  16. 学生信息管理系统——查询学生信息(Java+web综合)
  17. 2023北华大学计算机考研信息汇总
  18. 电脑版无需PS一键抠图工具
  19. staruml 4.0下载安装
  20. 2022硬刚PLUS德施曼年度峰会:多款领航旗舰发布,引领高端市场

热门文章

  1. Xposed原理分析
  2. android 根据宽度调整字体大小,android 字体大小 根据分辨率 自动调整
  3. android屏幕大小字体大小,Android字体大小自适应不同分辨率的解决办法
  4. 酷比魔方iwork8刷机shell_酷比魔方iwork8旗舰版刷机教程及固件上线
  5. Qt实现无边框可以拖拽拉伸
  6. 如何使用FreeTime将Android或Fire Tablet变成适合儿童使用的设备
  7. 深入分析Voldemort的PerformParallelRequests
  8. 技术经理成长复盘-发现团队的瓶颈
  9. 【JMeter】分布式远程启动
  10. 语音验证码的优势以及应用场景,最齐全的语言验证码介绍!