2019独角兽企业重金招聘Python工程师标准>>>

使用golang的正则表达式实现人民币小写转大写,代码如下:

package mainimport ("regexp""strconv""log""fmt"
)func ConvertNumToCny(num float64) string {strnum := strconv.FormatFloat(num*100, 'f', 0, 64)sliceUnit := []string{"仟", "佰", "拾", "亿", "仟", "佰", "拾", "万", "仟", "佰", "拾", "元", "角", "分"}// log.Println(sliceUnit[:len(sliceUnit)-2])s := sliceUnit[len(sliceUnit)-len(strnum) : len(sliceUnit)]upperDigitUnit := map[string]string{"0": "零", "1": "壹", "2": "贰", "3": "叁", "4": "肆", "5": "伍", "6": "陆", "7": "柒", "8": "捌", "9": "玖"}str := ""for k, v := range strnum[:] {str = str + upperDigitUnit[string(v)] + s[k]}reg, err := regexp.Compile(`零角零分$`)str = reg.ReplaceAllString(str, "整")reg, err = regexp.Compile(`零角`)str = reg.ReplaceAllString(str, "零")reg, err = regexp.Compile(`零分$`)str = reg.ReplaceAllString(str, "整")reg, err = regexp.Compile(`零[仟佰拾]`)str = reg.ReplaceAllString(str, "零")reg, err = regexp.Compile(`零{2,}`)str = reg.ReplaceAllString(str, "零")reg, err = regexp.Compile(`零亿`)str = reg.ReplaceAllString(str, "亿")reg, err = regexp.Compile(`零万`)str = reg.ReplaceAllString(str, "万")reg, err = regexp.Compile(`零*元`)str = reg.ReplaceAllString(str, "元")reg, err = regexp.Compile(`亿零{0, 3}万`)str = reg.ReplaceAllString(str, "^元")reg, err = regexp.Compile(`零元`)str = reg.ReplaceAllString(str, "零")if err != nil {log.Fatal(err)}return str
}func main() {fmt.Println("12345.78的大写金额为:",ConvertNumToCny(12345.78))
}

上面代码执行结果如下(可以使用ConvertNumToCny函数输入任何转换金额作为参数):

我们对于大金额的数据经常需要数位数而降低了我们读取数据的效率,可以使用golang以万为单位加入中文标识分割增加数字可读性,代码如下:

package mainimport ("strings""strconv""fmt"
)func ConvertNumToCap(num float64) string{strnum := strconv.FormatFloat(num, 'f', 2, 64)capitalSlice := []string{"万","亿","兆"}index := 0result := ""sdivision := strings.Split(strnum,".")sl := sdivision[0]if len(sdivision)>1{result="."+sdivision[1]}// slength := len(sl)for len(sl)>4{result = capitalSlice[index]+sl[len(sl)-4:] + resultindex = index+1sl = sl[0:len(sl)-4]}result = sl+resultresult = strings.Replace(result,"万0000","万",-1)result = strings.Replace(result,"亿0000","亿",-1)result = strings.Replace(result,"兆0000","兆",-1)result = strings.Replace(result,"亿万","亿",-1)result = strings.Replace(result,"兆亿","兆",-1)return result
}func main() {fmt.Println("123450000.78的金额转换为:",ConvertNumToCap(123450000.78))
}

上面代码执行结果如下(可以使用ConvertNumToCap函数输入任何转换金额作为参数):

转载于:https://my.oschina.net/zhizhisoft/blog/735669

golang实现人民币小写转大写相关推荐

  1. 人民币小写转换为大写函数

    人民币小写转换为大写 <script language=javascript> mymoney=window.prompt("请输入金额:"); </script ...

  2. 人民币小写转大写的一般方法

    人民币小写转大写的一般方法.还可以 const char* RMB(double rmb) {     if(rmb<0) return NULL;     static char *CCC[1 ...

  3. 英文转中文和人民币小写转大写

    public static string PinYin(string mystr)   { //指转换一个中文    string tt;    if ((mystr.ToUpper().Compar ...

  4. C语言实现人民币小写转大写

    这个是很早之前用C语言实现的人民币小写转大写的方法 /************************************************************************* ...

  5. java把小写变大写_用java实现人民币小写变大写的方法

    用java语言可以实现人民币小写转换为大写吗?如何实现呢?下面常见的用java实现人民币小写变大写的方法可以说是最精简的了,希望大家可以学习下. 这里介绍一个通过取余的办法来实现将人民币小写转换为大写 ...

  6. php人民币小写转大写函数

    发现csdn所用的代码高亮插件也有同样的bug,当代码中含有empty函数时,总是会输出两个.本想在这里发下代码的,一看发出来是错的,还是作罢,以免误导同学.留个链接吧:php人民币小写转大写函数

  7. php人民币小写转大写函数,php 人民币小写怎么转大写

    php人民币小写转大写的方法:首先创建一个PHP示例文件:然后通过"function num2rmb($number = 0, $int_unit = '', $is_round=FALSE ...

  8. c语言人民币小写转换成大写,C语言实现人民币小写转大写

    这个是很早之前用C语言实现的人民币小写转大写的方法 /************************************************************************* ...

  9. php人民币函数,php人民币小写转大写的函数,不限长度,精确到分(推荐)

    本文介绍下,php实现的一个人民币小写转大写的函数,不限数字长度,可以精确到分.有需要的朋友,参考下吧. 在打印发票或显示账单时,经常需要将人民币的金额由小写转为大写. 以下是一个改进后的人民币小写转 ...

最新文章

  1. 2020未来科学大奖获奖名单揭晓
  2. 【TJOI/HEOI2016】求和
  3. 对一千万条数据进行排序---编程珠玑第二版 第一章
  4. Getting the right Exception Context from a Memory dump Fixed
  5. s5pv210——串口(UART)通信实战
  6. (王道408考研数据结构)第三章栈和队列-第一节:栈基本概念、顺序栈和链栈基本操作
  7. 帮助罕见病患者买得到药 京东健康上线“罕见病关爱中心”
  8. gitlab 安装_安装Gitlab-注意端口
  9. 小程序input绑定输入保存数据
  10. 【LeetCode-SQL】1384. 按年度列出销售总额
  11. 《短码之美》Ozy著学习笔记
  12. mac版 IGV(版本2.12.3)安装
  13. Vue如何正确使用watch监听属性变化
  14. 3dsmax2014如何导入图片作为参考
  15. mybatis查询更新
  16. ThingsBoard Mac Docker 安装详细步骤
  17. k3s 部署nacos-server:v2.1.1-slim
  18. 脉冲神经网络:MATLAB实现脉冲神经网络(Spiking Neural Network,SNN) 用于图像分类(提供MATLAB代码)
  19. windows下载7z
  20. 小米R3G路由器Breed控制台刷OpenWrt固件

热门文章

  1. 笔记本nc10装linux,三星nc10笔记本快捷键驱动
  2. 写作活动第三期!让我们再挣200元稿费吧!
  3. 目标规划的数学建模及求解
  4. 《匆匆那年》的你,还记得吗?数学中的那些有(hui)趣(se)的定理(11)——XXX定理
  5. 一个很傻瓜式解数独算法
  6. NPOI使用ShiftRows向excel插入行,并复制原有样式
  7. 职业选手图解教你如何DIY装机
  8. 你不知道的常用 代码分析 规范
  9. 软件项目管理第4版课后习题第十六章
  10. 平行四边形的效果实现