1. //原创内容 ,

  2. //主要目的是用于自己记录一些封装好的方法 和 分享以供大家借鉴。 希望大家能提出优化建议。

  3. //如若转载 望加来源,谢谢。https://blog.csdn.net/BetterMan_1/article/details/77646429

//阿拉伯转中文

private function numtochr($num,$mode=true) {

$char = array("零","一","二","三","四","五","六","七","八","九");
   $dw = array("","十","百","千","","万","亿","兆");
   $dec = "点";
   $retval = "";
   if($mode)
      preg_match_all("/^0*(\d*)\.?(\d*)/",$num, $ar);
   else
      preg_match_all("/(\d*)\.?(\d*)/",$num, $ar);
   if($ar[2][0] != "")
      $retval = $dec . $this->ch_num($ar[2][0],false); //如果有小数,先递归处理小数
   if($ar[1][0] != "") {
      $str = strrev($ar[1][0]);
      for($i=0;$i<strlen($str);$i++) {
         $out[$i] = $char[$str[$i]];
         if($mode) {
            $out[$i] .= $str[$i] != "0"? $dw[$i%4] : "";
            if($str[$i]+$str[$i-1] == 0)
               $out[$i] = "";
            if($i%4 == 0)
               $out[$i] .= $dw[4+floor($i/4)];
         }
      }
      $retval = join("",array_reverse($out)) . $retval;
   }
   return $retval;
}

//中文转阿拉伯
private function chrtonum($str){
   $num=0;
   $bins=array("零","一","二","三","四","五","六","七","八","九",'a'=>"个",'b'=>"十",'c'=>"百",'d'=>"千",'e'=>"万");
   $bits=array('a'=>1,'b'=>10,'c'=>100,'d'=>1000,'e'=>10000);
   foreach($bins as $key=>$val){
      if(strpos(" ".$str,$val)) $str=str_replace($val,$key,$str);
   }
   foreach(str_split($str,2) as $val){
      $temp=str_split($val,1);
      if(count($temp)==1) $temp[1]="a";
      if(isset($bits[$temp[0]])){
         $num=$bits[$temp[0]]+(int)$temp[1];
      }else{
         $num+=(int)$temp[0]*$bits[$temp[1]];
      }
   }
   return $num;

}

//下面是批量转换  $str是多道题 每道题换行或多余10个空格隔开即可  调用shuziduxie方法即可

private function shuziduxie($str){
$res = array();
$arr = explode(chr(10),$str);
foreach ($arr as $k=>$v){
$v = trim($v);
if(is_numeric($v)){
$question = $v.' 读作:';
$anser = $this->numtochr($v);
}else{
$question = $v.' 写作:';
if(strstr($v,"亿")) {
$v = explode('亿', $v);
$y = $this->chrtonum($v[0]);
$v = $v[1];
}else{
$y = 0;
}
if(strstr($v,"万")){
$v = explode('万',$v);
if(strstr($v[0],"零")){
$n = explode('零',$v[0]);
$a = $this->chrtonum($n[0])+$this->chrtonum($n[1]);
}else{
$a = $this->chrtonum($v[0]);
}
if(strstr($v[1],"零")){
$m = explode('零',$v[1]);
$b = $this->chrtonum($m[0])+$this->chrtonum($m[1]);
}else{
$b = $this->chrtonum($v[1]);;
}
$anser = $y*100000000+$a*10000+$b;
}else{
if(strstr($v,"零")){
$v = explode('零',$v);
$anser = $y*100000000+$this->chrtonum($v[0])+$this->chrtonum($v[1]);
}else{
$anser = $y*100000000+$this->chrtonum($v);;
}
}
}
$res[$k]['question'] = $question;
$res[$k]['question_word'] = $question;
$res[$k]['questionanswer'] = $anser;
$res[$k]['question_answer_word'] = $anser;
}
return $res;
}

PHP阿拉伯数字与中文数字的转换,阿拉伯数字转中文数字,中文数字转阿拉伯数字(数字的读写)相关推荐

  1. js和ts两种 将 小写金额转中文大写汉字,阿拉伯数字金额格式化成中文大写汉字,数字金额转换成财务发票大写中文

    通过 npm i money2cn 安装  支持typescript 使用: import  money2cn  from 'money2cn' const nums = money2cn(23423 ...

  2. python数字大小写转换代码_用python实现把数字人民币金额转换成大写的脚本程序...

    # -*- coding: utf-8 -*- def Num2MoneyFormat( change_number ): """ .转换数字为大写货币格式( forma ...

  3. 中文数字文字转换成阿拉伯数字

    在参考率网络上的部分代码后,写了一个简单的转换方法,原本是想用在抓取电子书中的标题使用的,比如,"第一千三百零二章"转换成1302 1 /// <summary> 2 ...

  4. JAVA 中文汉字转换阿拉伯数字(最终版,已修复了亿及亿以下的汉数字的转换,超过后的数字,暂时不支持)

    嘎嘎嘎,大写的尴尬,非常感谢Eliauk_cc-May反馈的bug,代码重新修改啦,鉴于之前过于复杂的逻辑,本次进行了简化 //判断是否为中文数字字符public static List<Str ...

  5. 【C语言】小写数字金额转换成中文大写金额

    1. 更新说明 添加与 "零圆整" 等价的预先判断 (0 / 0. / 0.0 / 0.00 / . / .0 / .00) 修复了因使用函数 strdup 导致的内存泄漏 除去输 ...

  6. c++字符数组整数转换中文大写金额的形式_数字大写转换烦,内置格式多缺陷, VBA函数来解难...

    观看视频更直观 在Excel中将数字转换为中文大写或小写,有两种方法,一种是设置数据格式:另一种是使用内置的隐蔽函数NumberString函数. 一.设置数据格式 在Excel中输入数字后,选中单元 ...

  7. 把数字金额转换成中文大写数字

    //把数字金额转换成中文大写数字 function changeNumMoneyToChinese(money) { var cnNums = new Array("零", &qu ...

  8. 数字用计算机语言怎么表示,如何用Rust编程语言进行中文数字的转换?

    「中文数字」是中文的数字表示方式,例如「123」,可以表示为「一百二十三」.中文数字如同英文本母一样有区分大小写,例如「123」的中文数字小写为「一百二十三」,大写则为「壹佰贰拾参」.至於单位则有个. ...

  9. mysql金额数字转成中文_数字金额大写转换(可以处理整数,小数,负数)

    数字金额大写转换(可以处理整数,小数,负数) 代码 //数字金额大写转换 function upDigit(n) { var fraction = ['角', '分']; var digit = [' ...

  10. java 数字转大写_Java实现数字大写转换

    packageday1;importjava.util.ArrayList;importjava.util.Collections;importjava.util.regex.Pattern;publ ...

最新文章

  1. 1000万存在银行,一年的利息够日常生活费吗?
  2. Pytorch出现RuntimeError: Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor)
  3. android 跳转系统通知,android 跳转到应用通知设置界面
  4. 用SignalR 2.0开发客服系统[系列5:使用SignalR的中文简体语言包和其他技术点]
  5. ESP32使用PCF8563时钟模块进行网络校时
  6. html网站a标签直接下载pdf,不在浏览器打开
  7. 国家区域代码关系整理
  8. 数商云:传统建筑行业产业转型,轻松实现建筑材料信息系统撮合交易智能化、数字化管理
  9. HTTP协议:无状态协议
  10. 如何产生JIC文件(sof+ELF=jic)
  11. 能够正常加入域但无法实施域策略
  12. SettingWithCopyWarning:A value is trying to be set on a copy of a slice from a DataFrame(Pandas库)
  13. Linux部署KVM虚拟化平台
  14. http抓包工具推荐
  15. 《原则》瑞·达利欧 --(五万字手敲笔记)
  16. 用Python制作简单的小游戏
  17. 2022-09-12-kvm介绍
  18. Html5 学前须知
  19. 如何写一个简单java接口的例子(内容详细,适合初学者)
  20. 微信小程序中使用 iconfont 图标的四种方法

热门文章

  1. Windows linux 敏感目录 路径汇总
  2. 做什么小生意能月入一万?卖什么月薪过万?
  3. Tableau实战 房地产估值分析
  4. VMware NSX Advanced Load Balancer (NSX ALB) 22.1.3 - 负载均衡平台
  5. 展望宁波it业的发展
  6. 最好的编程语言(如何不再担忧,爱上代码)
  7. 纤亿通带您了解无源光网络(PON)
  8. ROS学习笔记13 —— SolidWorks、urdf、xacro及sdf间的转换
  9. 解码(decode)与编码(encode)(内附源代码)
  10. K8S 安装kubernetes-dashboard大坑解决方案