当前位置: 首页 > news >正文

人民币数字和中文汉字转换

在PHP中,将人民币的中文汉字金额转换为数字,或者将数字转换为人民币的中文汉字金额,通常需要自定义一些函数来实现这一转换过程。下面分别给出这两个转换的示例代码。
数字转人民币中文汉字

function numberToChinese($num) {  $cnNums = array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');  $cnUnits = array('', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿');  $numStr = strval($num);  $numStr = array_reverse(str_split($numStr));  $result = '';  $zeroCount = 0;  for ($i = 0; $i < count($numStr); $i++) {  $digit = intval($numStr[$i]);  $unit = $cnUnits[$i % 4];  if ($digit === 0) {  $zeroCount++;  } else {  if ($zeroCount > 0) {  $result = $cnNums[0] . $result;  }  $zeroCount = 0;  $result = $cnNums[$digit] . $unit . $result;  }  if (($i + 1) % 4 === 0 && $digit !== 0) {  $result = $cnUnits[4 + intval(($i + 1) / 4) - 1] . $result;  }  }  $result = trim($result, $cnNums[0]); // 去除结果字符串两边的零  if (empty($result)) {  $result = $cnNums[0]; // 如果结果为空,则返回零  }  return '人民币' . $result . '元整';  
}  // 示例用法  
echo numberToChinese(123456789); // 输出:人民币壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元整

人民币中文汉字转数字

function chineseToNumber($chinese) {  // 去除人民币和元整等字样  $chinese = preg_replace('/人民币|元整|元正|元|整|正/i', '', $chinese);  $cnNums = array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');  $cnUnits = array('', '拾', '佰', '仟');  $unitPosition = array(1, 10, 100, 1000); // 个、十、百、千  $num = 0;  $position = 0; // 万位、亿位等的位置,初始为个位  $isPrevZero = false; // 前一个数字是否为零  $chinese = str_split($chinese);  for ($i = 0; $i < count($chinese); $i++) {  $char = $chinese[$i];  if (in_array($char, $cnNums)) {  $digit = array_search($char, $cnNums);  if ($digit === 0 && $isPrevZero) {  continue; // 连续的零只计算一个  }  $num += $digit * $unitPosition[$i % 4] * pow(10000, intval($position));  $isPrevZero = ($digit === 0);  } elseif (in_array($char, $cnUnits)) {  if ($char === '万' || $char === '亿') {  $position++;  }  }  }  return $num;  
}  // 示例用法  
echo chineseToNumber('人民币壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元整'); // 输出:123456789
http://www.lryc.cn/news/345640.html

相关文章:

  • 07_Flutter使用NestedScrollView+TabBarView滚动位置共享问题修复
  • Java解决垂直鉴权问题(对垂直权限进行校验)
  • 【MySQL工具】pt-heartbeat
  • 实现vant的年月日时分秒组件
  • typescript 命名空间、装饰器
  • GPT问答SAP BW
  • 使用zdppy_amauth开发激活用户接口
  • c++ memset 指针示例
  • 24考研双非上岸武汉理工大学电子信息专硕,855考研经验
  • 使用KubeKey 快速交付k8s v1.28.8集群
  • nginx--压缩https证书favicon.iconginx隐藏版本号 去掉nginxopenSSL
  • 通俗的理解网关的概念的用途(四):什么是网关设备?(网络层面)
  • Spring JdbcTemplate实现自定义动态sql拼接功能
  • 第十一篇:操作系统新纪元:智能融合、量子跃迁与虚拟现实的交响曲
  • 【大数据】学习笔记
  • PHP 框架安全:ThinkPHP 序列 漏洞测试.
  • 厂家自定义 Android Ant编译流程源码分析
  • 基于springboot+vue+Mysql的体质测试数据分析及可视化设计
  • uniapp的app端推送功能,不使用unipush
  • 数据结构(四)————二叉树和堆(中)
  • 随便写点东西
  • Mac 报错 Zsh: command not found :brew
  • 分析师常用商业分析模型
  • KMeans,KNN,Mean-shift算法的学习
  • web前端笔记8
  • 【漏洞复现】Apahce HTTPd 2.4.49(CVE-2021-41773)路径穿越漏洞
  • API低代码平台介绍2-最基本的数据查询功能
  • 面试经典150题——盛最多水的容器
  • Box86源码解读记录
  • Azure AKS日志查询KQL表达式