golang实现人民币小写转大写
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实现人民币小写转大写相关推荐
- 人民币小写转换为大写函数
人民币小写转换为大写 <script language=javascript> mymoney=window.prompt("请输入金额:"); </script ...
- 人民币小写转大写的一般方法
人民币小写转大写的一般方法.还可以 const char* RMB(double rmb) { if(rmb<0) return NULL; static char *CCC[1 ...
- 英文转中文和人民币小写转大写
public static string PinYin(string mystr) { //指转换一个中文 string tt; if ((mystr.ToUpper().Compar ...
- C语言实现人民币小写转大写
这个是很早之前用C语言实现的人民币小写转大写的方法 /************************************************************************* ...
- java把小写变大写_用java实现人民币小写变大写的方法
用java语言可以实现人民币小写转换为大写吗?如何实现呢?下面常见的用java实现人民币小写变大写的方法可以说是最精简的了,希望大家可以学习下. 这里介绍一个通过取余的办法来实现将人民币小写转换为大写 ...
- php人民币小写转大写函数
发现csdn所用的代码高亮插件也有同样的bug,当代码中含有empty函数时,总是会输出两个.本想在这里发下代码的,一看发出来是错的,还是作罢,以免误导同学.留个链接吧:php人民币小写转大写函数
- php人民币小写转大写函数,php 人民币小写怎么转大写
php人民币小写转大写的方法:首先创建一个PHP示例文件:然后通过"function num2rmb($number = 0, $int_unit = '', $is_round=FALSE ...
- c语言人民币小写转换成大写,C语言实现人民币小写转大写
这个是很早之前用C语言实现的人民币小写转大写的方法 /************************************************************************* ...
- php人民币函数,php人民币小写转大写的函数,不限长度,精确到分(推荐)
本文介绍下,php实现的一个人民币小写转大写的函数,不限数字长度,可以精确到分.有需要的朋友,参考下吧. 在打印发票或显示账单时,经常需要将人民币的金额由小写转为大写. 以下是一个改进后的人民币小写转 ...
最新文章
- 2020未来科学大奖获奖名单揭晓
- 【TJOI/HEOI2016】求和
- 对一千万条数据进行排序---编程珠玑第二版 第一章
- Getting the right Exception Context from a Memory dump Fixed
- s5pv210——串口(UART)通信实战
- (王道408考研数据结构)第三章栈和队列-第一节:栈基本概念、顺序栈和链栈基本操作
- 帮助罕见病患者买得到药 京东健康上线“罕见病关爱中心”
- gitlab 安装_安装Gitlab-注意端口
- 小程序input绑定输入保存数据
- 【LeetCode-SQL】1384. 按年度列出销售总额
- 《短码之美》Ozy著学习笔记
- mac版 IGV(版本2.12.3)安装
- Vue如何正确使用watch监听属性变化
- 3dsmax2014如何导入图片作为参考
- mybatis查询更新
- ThingsBoard Mac Docker 安装详细步骤
- k3s 部署nacos-server:v2.1.1-slim
- 脉冲神经网络:MATLAB实现脉冲神经网络(Spiking Neural Network,SNN) 用于图像分类(提供MATLAB代码)
- windows下载7z
- 小米R3G路由器Breed控制台刷OpenWrt固件