阿拉伯整数转成人民币表示
// 将数字转换成人民币
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>using namespace std;vector<string> units = {"","拾", "佰", "千", "万", "亿"};
vector<string> chNums = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
vector<int> bits;
bool last_zero;// bits存的是从低位到高位的数字 begin到end数字位数上升
string change(int begin, int end)
{ int pos = 0;string ret, tmp;bool add_zero = false;// 如果上一轮存在后缀0 则判断本轮是否存在前导0 如果存在则不需要考虑前一轮的后缀0// 否则需要加上前一轮的0if(bits[end - 1] != 0 && last_zero){add_zero = true;}// 更新是否存在后缀0last_zero = bits[begin] == 0 ? true : false;while(begin < end && bits[begin] == 0){begin++;pos++;}for(; begin < end; begin++, pos++){tmp = "";if(bits[begin] != 0){tmp += chNums[bits[begin]];tmp += units[pos];}else if(bits[begin - 1] != 0){// begin - 1不可能小于0,因为如果begin = 0, bits[begin] = 0, 在开始已经移动到一个不为0的位置tmp += chNums[0];}// 将tmp加到ret首部ret = tmp + ret;}if(add_zero){ret = chNums[0] + ret;}return ret;
}string transform(int n)
{bits.clear();last_zero = false;string ret, tmp;// 每四位分开处理 分别是亿, 万, 一元为基础单位while(n != 0){int res = n % 10;bits.push_back(res);n /= 10;}int len = bits.size();if(len > 8){tmp = change(8, len);if(tmp.size()){ret += tmp + "亿";}}if(len > 4){tmp = change(4, min(len, 8));if(tmp.size()){ret += tmp + "万";}}tmp = change(0, min(len, 4));if(tmp.size()){ret += tmp;}ret += "元";return ret;
}int main(){// for(int i = 0; i < 100; i++){// int n = rand() * rand();// string ans = transform(n);// cout<<"n = "<<n<<" trans str= "<<ans<<endl;// }int n = 1070078010;string ans = transform(n);cout<<"n = "<<n<<" trans str= "<<ans<<endl;return 0;
}
阿拉伯整数转成人民币表示相关推荐
- 人民币金额由阿拉伯数值转换成汉字大写数值的函数
分成四个步骤: 1.数字的转化.阿拉伯数字转换为汉字大写字符 2.整数部分的转化. 分节:四位一组,从个位开始分节 每节转化为汉字大写数值:比如"1234"转化成 "壹仟 ...
- JAVA浮点数浮点数转换成人民币读法
侵删! 在<疯狂JAVA讲义>第4章最后练习题中,第5题:编写一个程序,将浮点数转换成人民币读法字符串,例如,将1006.33转换成一千零六元三角三分. 这个题主要是一个逻辑判断的过程.首 ...
- 数值转换成人民币大写的一个类
网上有许多将数值转换成人民币大写的代码,其中有不少写得很好的.昨天在Csdn上浏览,觉得这个比较简洁,但也有几点小Bug,稍加整理,觉得仍然与财务表达方式有不一致的地方,故先贴上来,请大家看看. pu ...
- 浮点数字转换成人民币的大写字体
新开博客,贴上一段平常时写的代码,权当记录和分享. 下面是代码块(有比较详细的注释,转换过程中需要注意的是0的处理): //浮点数字转换成人民币的大写字体 import java.util.Scann ...
- Vue.js阿拉伯数字转化成人民币的中文
// 数字金额转化成人民币的中文 export function numberToChinese(money) {//汉字的数字var cnNums = new Array("零" ...
- js中将 整数转成字符,,将unicode 编码后的字符还原出来的方法。
一.将整数转成字符: String.fromCharCode(17496>>8,17496&0xFF,19504>>8,19504&0xFF,12848> ...
- 把整数转换成2的n次方的和数组
为什么80%的码农都做不了架构师?>>> 大概这样:125 => [1, 4, 8, 16, 32, 64] 写几种实现: Ruby: 2.3.1 :022 > 1 ...
- 整数转化成字符串; 字符串转换为整数
整数转化成字符串: 字符串转换为整数 /*整数转化成字符串*/ char *IntToStr(int num, char str[]) {int i = 0, j = 0;char temp[100] ...
- c语言中将整数转换成字符串_在C语言中将ASCII字符串(char [])转换为八进制字符串(char [])...
c语言中将整数转换成字符串 Given an ASCII string (char[]) and we have to convert it into octal string (char[]) in ...
最新文章
- 机器学习入门(21)— 感受野概念
- 【深度学习】with torch.no_grad的作用
- [architecture]-ARMV8的RAS Extension(Reliability、Availability、Serviceability)介绍
- java中有哪几种注释方式_在 Java 中, 有多种注释方法,其中 __________ 适用于单行注释。...
- SAP Spartacus routing参数的权重和HTTP校验逻辑
- 个人笔记上传 -- redis安装
- SqlServer 在创建数据库时候指定的初始数据库大小是不能被收缩的
- Spring使用json转换工具
- opencv19:轮廓凸包,距离与匹配
- 央行企业征信异议处理条件及流程
- Android中TextView加横线的属性
- 雷电模拟器设置在WiFi设置代理不生效
- 仿携程oracle课程设计,一个不错的仿携程自定义数据下拉选择select
- 全国各省份名义GDP、实际GDP、GDP平减指数(以2008年为基期,2008-2018年)
- 判断大学生体侧项目中立定跳远成绩的等级
- ultraedit编译java_在UltraEdit中编译和运行Java程序
- 关于地图偏移问题的解答
- envi读取格式ang 还是mtl_ENVI学习笔记一 软件入门
- 解决vmware 本地连接时出错:地址仍未与网络终结点关联
- Revit二次开发-自动线性尺寸标注