php大写数字转换,php数字如何转换大写
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数字如何转换大写相关推荐
- java开发_数字转换汉语中人民币的大写_完整版
转自:https://www.cnblogs.com/hongten/p/hongten_java_money.html 做这个应用,源于突然的一个想法:看到发票上面的数字要转换成汉语中人民币的大写 ...
- 将数字转换成中文金额的大写形式
package com.unteck.fms.web.businessdata.controller; import org.springframework.beans.factory.annotat ...
- java人民币大小写转换函数_java开发_数字转换汉语中人民币的大写_完整版
1 package com.b510.number2char;2 3 import java.math.BigDecimal;4 5 /**6 * 数字转换为汉语中人民币的大写 7 *8 * @aut ...
- C++中数字与字符串之间的转换 scanf string总结(复习必读)
1 string的scanf读入操作 C++里面控制台输入直接使用cin操作就可以了:或者getline(istringstream,string); 字符和数字加减就是字符的ASCII码和数字直接加 ...
- angular 字符串转换成数字_Python基础语法大全:字符串的处理与使用
本文来自牛鹭学院学员:邓瑞杰 字母处理 string.capitalize() 返回元字符串,且将字符串第一个字母转为大写,其它字母小写 string.title() 返回元字符串,且将字符串第一个字 ...
- C语言编程>第十六周 ⑧ S是一个由数字和字母字符串组成的字符串,由变量len传入字符串长度。请补充fun函数,该函数的功能是把字符串s中的数字字符转换成数字并存放到整型数组a中
例题:S是一个由数字和字母字符串组成的字符串,由变量len传入字符串长度.请补充fun函数,该函数的功能是把字符串s中的数字字符转换成数字并存放到整型数组a中,函数返回数组a的长度. 例如,s=&qu ...
- 关键字的使用限制 数字之间的进制转换 java如何注释
2.1 关键字 关键字是指被高级编程语言赋予特殊含义的一些单词,关键字一般都是由小写字母组成.好比是汉 语当中的一些专有名词:北京,天安门,兵马俑.不能乱用. 用于定义数据类型的关键字:byte sh ...
- 大小写字母转换、数字与字符转换及ASCII码表
ASCII码表: 1 大小写转换: 1.1 数据类型强制转换法: eg.大写→小写 char A = 'A'; char a = char(A + 32); cout << a; 输出结果 ...
- C++ 笔记(35)— std::to_string 转换整形数字为字符串
1. 函数原型 string to_string (int val); string to_string (long val); string to_string (long long val); s ...
- js 字符串转换成数字的 三种方法
在js读取文本框或者其它表单数据的时候获得的值是字符串类型的,例如两个文本框a和b,如果获得a的value值为11,b的value值为9 ,那么a.value要小于b.value,因为他们都是字符串形 ...
最新文章
- Web项目使用nginx实现代理端口访问,看这篇就够了
- python希尔排序的优缺点_Python排序搜索基本算法之希尔排序实例分析
- NEO从源码分析看NEOVM
- word2vec代码_Word2Vec-——gensim实战教程
- 跳出圈子易,再入围城难,重新学编程,且学且珍惜
- 【Linux】一步一步学Linux——gcc命令(249)
- android 学习记录-----------android 活动 意图 碎片
- php基础篇-二维数组排序 array_multisort
- C#LeetCode刷题之#695-岛屿的最大面积( Max Area of Island)
- mariaDB数据库存放路径修改配置问题
- flask入门2-模板引擎
- 信息安全工程师学习笔记《第一章》
- eoLinker-API_Shop_知识类API调用的代码示例合集:驾考题库、ISBN书号查询等
- goeasy小demo
- python混合线性模型_Python中的多元线性混合效应模型
- 程序和算法之间,主要有什么关系?
- Android 12.0 修改系统默认字体的大小
- 2023临沂大学计算机考研信息汇总
- Java生成树型结构
- 解决科研小问题 | Error: Unable to find solver DLL path from sim file