最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

php数字如何转换大写

来源:动视网 责编:小采 时间:2020-11-02 18:47:29
文档

php数字如何转换大写

php数字如何转换大写:php数字转换大写的方法:首先判断输出的金额是否为数字或数字字符串;然后预定义中文转换的数组以及单位转换的数组;接着将金额的数值字符串拆分成数组;最后将整数部分替换成大写汉字即可。PHP数字金额转换大写金额代码如下:/** * 将数值金额转换为中文大写
推荐度:
导读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<$integerArrLength; $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数字如何转换大写:php数字转换大写的方法:首先判断输出的金额是否为数字或数字字符串;然后预定义中文转换的数组以及单位转换的数组;接着将金额的数值字符串拆分成数组;最后将整数部分替换成大写汉字即可。PHP数字金额转换大写金额代码如下:/** * 将数值金额转换为中文大写
推荐度:
标签: 如何 php 数字
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top