php数字转换大写的方法:首先判断输出的金额是否为数字或数字字符串;然后预定义中文转换的数组以及单位转换的数组;接着将金额的数值字符串拆分成数组;最后将整数部分替换成大写汉字即可。

PHP数字金额转换大写金额

代码如下:/**

* 将数值金额转换为中文大写金额

* @param $amount float 金额(分)

* @param $type int 补整类型,0:到角补整;1:到元补整

* @return mixed 中文大写金额

*/

function convertAmountToCn($amount, $type = 1) {

if ($amount == 0) {

return "零元整";

}

if (strlen($amount) > 12) {

return "不支持万亿及更高金额";

}

// 预定义中文转换的数组

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

// 预定义单位转换的数组

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

// 将金额的数值字符串拆分成数组

$amountArr = explode('.', $amount);

// 将整数位的数值字符串拆分成数组

$integerArr = str_split($amountArr[0], 1);

// 将整数部分替换成大写汉字

$result = '人民币';

$integerArrLength = count($integerArr);

$positionLength = count($position);

for($i=0; $i

$result = $result . $digital[$integerArr[$i]]. $position[$positionLength - $integerArrLength + $i];

}

// 如果小数位也要转换

if($type == 1){

// 将小数位的数值字符串拆分成数组

$decimalArr = str_split($amountArr[1], 1);

// 将小数部分替换成大写汉字

$result = $result . $digital[$decimalArr[0]] . '角' . $digital[$decimalArr[1]] . '分';

}else{

$result = $result . '整';

}

return $result;

}

经过考虑后, 发现之前写的代码不够严谨, 特此补充了一份新版的代码/**

* 将数值金额转换为中文大写金额

* @param $amount float 金额(支持到分)

* @param $type int 补整类型,0:到角补整;1:到元补整

* @return mixed 中文大写金额

*/

function convertAmountToCn($amount, $type = 1) {

// 判断输出的金额是否为数字或数字字符串

if(!is_numeric($amount)){

return "要转换的金额只能为数字!";

}

// 金额为0,则直接输出"零元整"

if($amount == 0) {

return "人民币零元整";

}

// 金额不能为负数

if($amount < 0) {

return "要转换的金额不能为负数!";

}

// 金额不能超过万亿,即12位

if(strlen($amount) > 12) {

return "要转换的金额不能为万亿及更高金额!";

}

// 预定义中文转换的数组

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

// 预定义单位转换的数组

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

// 将金额的数值字符串拆分成数组

$amountArr = explode('.', $amount);

// 将整数位的数值字符串拆分成数组

$integerArr = str_split($amountArr[0], 1);

// 将整数部分替换成大写汉字

$result = '人民币';

$integerArrLength = count($integerArr); // 整数位数组的长度

$positionLength = count($position); // 单位数组的长度

for($i = 0; $i < $integerArrLength; $i++) {

// 如果数值不为0,则正常转换

if($integerArr[$i] != 0){

$result = $result . $digital[$integerArr[$i]] . $position[$positionLength - $integerArrLength + $i];

}else{

// 如果数值为0, 且单位是亿,万,元这三个的时候,则直接显示单位

if(($positionLength - $integerArrLength + $i + 1)%4 == 0){

$result = $result . $position[$positionLength - $integerArrLength + $i];

}

}

}

// 如果小数位也要转换

if($type == 0) {

// 将小数位的数值字符串拆分成数组

$decimalArr = str_split($amountArr[1], 1);

// 将角替换成大写汉字. 如果为0,则不替换

if($decimalArr[0] != 0){

$result = $result . $digital[$decimalArr[0]] . '角';

}

// 将分替换成大写汉字. 如果为0,则不替换

if($decimalArr[1] != 0){

$result = $result . $digital[$decimalArr[1]] . '分';

}

}else{

$result = $result . '整';

}

return $result;

}

很多相关知识,请访问PHP中文网!

php大写数字转换,php数字如何转换大写相关推荐

  1. java开发_数字转换汉语中人民币的大写_完整版

    转自:https://www.cnblogs.com/hongten/p/hongten_java_money.html 做这个应用,源于突然的一个想法:看到发票上面的数字要转换成汉语中人民币的大写 ...

  2. 将数字转换成中文金额的大写形式

    package com.unteck.fms.web.businessdata.controller; import org.springframework.beans.factory.annotat ...

  3. java人民币大小写转换函数_java开发_数字转换汉语中人民币的大写_完整版

    1 package com.b510.number2char;2 3 import java.math.BigDecimal;4 5 /**6 * 数字转换为汉语中人民币的大写 7 *8 * @aut ...

  4. C++中数字与字符串之间的转换 scanf string总结(复习必读)

    1 string的scanf读入操作 C++里面控制台输入直接使用cin操作就可以了:或者getline(istringstream,string); 字符和数字加减就是字符的ASCII码和数字直接加 ...

  5. angular 字符串转换成数字_Python基础语法大全:字符串的处理与使用

    本文来自牛鹭学院学员:邓瑞杰 字母处理 string.capitalize() 返回元字符串,且将字符串第一个字母转为大写,其它字母小写 string.title() 返回元字符串,且将字符串第一个字 ...

  6. C语言编程>第十六周 ⑧ S是一个由数字和字母字符串组成的字符串,由变量len传入字符串长度。请补充fun函数,该函数的功能是把字符串s中的数字字符转换成数字并存放到整型数组a中

    例题:S是一个由数字和字母字符串组成的字符串,由变量len传入字符串长度.请补充fun函数,该函数的功能是把字符串s中的数字字符转换成数字并存放到整型数组a中,函数返回数组a的长度. 例如,s=&qu ...

  7. 关键字的使用限制 数字之间的进制转换 java如何注释

    2.1 关键字 关键字是指被高级编程语言赋予特殊含义的一些单词,关键字一般都是由小写字母组成.好比是汉 语当中的一些专有名词:北京,天安门,兵马俑.不能乱用. 用于定义数据类型的关键字:byte sh ...

  8. 大小写字母转换、数字与字符转换及ASCII码表

    ASCII码表: 1 大小写转换: 1.1 数据类型强制转换法: eg.大写→小写 char A = 'A'; char a = char(A + 32); cout << a; 输出结果 ...

  9. C++ 笔记(35)— std::to_string 转换整形数字为字符串

    1. 函数原型 string to_string (int val); string to_string (long val); string to_string (long long val); s ...

  10. js 字符串转换成数字的 三种方法

    在js读取文本框或者其它表单数据的时候获得的值是字符串类型的,例如两个文本框a和b,如果获得a的value值为11,b的value值为9 ,那么a.value要小于b.value,因为他们都是字符串形 ...

最新文章

  1. Web项目使用nginx实现代理端口访问,看这篇就够了
  2. python希尔排序的优缺点_Python排序搜索基本算法之希尔排序实例分析
  3. NEO从源码分析看NEOVM
  4. word2vec代码_Word2Vec-——gensim实战教程
  5. 跳出圈子易,再入围城难,重新学编程,且学且珍惜
  6. 【Linux】一步一步学Linux——gcc命令(249)
  7. android 学习记录-----------android 活动 意图 碎片
  8. php基础篇-二维数组排序 array_multisort
  9. C#LeetCode刷题之#695-岛屿的最大面积( Max Area of Island)
  10. mariaDB数据库存放路径修改配置问题
  11. flask入门2-模板引擎
  12. 信息安全工程师学习笔记《第一章》
  13. eoLinker-API_Shop_知识类API调用的代码示例合集:驾考题库、ISBN书号查询等
  14. goeasy小demo
  15. python混合线性模型_Python中的多元线性混合效应模型
  16. 程序和算法之间,主要有什么关系?
  17. Android 12.0 修改系统默认字体的大小
  18. 2023临沂大学计算机考研信息汇总
  19. Java生成树型结构
  20. 解决科研小问题 | Error: Unable to find solver DLL path from sim file

热门文章

  1. 可视对讲行业洗牌进行时 企业应该何去何从?
  2. VS2013安装教程
  3. CST微波工作室学习笔记—14.天线设计实例
  4. 九月手机无新事:头部品牌没创新,二三线品牌静悄悄
  5. linux模拟键盘按键_Linux上的自动键盘按键
  6. 高等数学张宇18讲 第六讲 零点问题、微分不等式
  7. linux系统时间与网络时间不同步
  8. java sql in语句,sql语句In查询的好
  9. 详解网易有道AI战略,智能硬件、教育、办公三大解决方案
  10. 曲面的法向量+高斯公式曲面的方向余弦的计算